将 django.contrib.auth.models.User 中的信息显示在视图中
Bringing Information from django.contrib.auth.models.User into View
我的 Django 项目中有以下模型:
from django.contrib.auth.models import User
class Project(models.Model):
project_title = models.CharField(max_length=200)
project_description = models.CharField(max_length=200, default="")
created_date = models.DateTimeField('date created')
owner = models.ForeignKey(User)
def __str__(self):
return self.project_title
此视图使用项目模型如下:
class ProjectView(generic.edit.UpdateView):
model = Project
fields = ['project_title','project_description']
template_name = 'steps/project.html'
success_url = reverse_lazy('steps:index')
我的问题是如何将用户的字段放入我的 ProjectView 中,以便我可以在模板中使用它们?特别是,我想显示登录用户的姓名和电子邮件。
用户信息放在请求上,而不是视图上。所以你可以在模板中写{{user.username}}
,或者{{user.email}}
。你会明白的。当然如果user.is_authenticated
在您的模板中写入:
{% if request.user.is_authenticated %}
{{ request.user.username }}
{{ request.user.email }}
{% endif %}
我的 Django 项目中有以下模型:
from django.contrib.auth.models import User
class Project(models.Model):
project_title = models.CharField(max_length=200)
project_description = models.CharField(max_length=200, default="")
created_date = models.DateTimeField('date created')
owner = models.ForeignKey(User)
def __str__(self):
return self.project_title
此视图使用项目模型如下:
class ProjectView(generic.edit.UpdateView):
model = Project
fields = ['project_title','project_description']
template_name = 'steps/project.html'
success_url = reverse_lazy('steps:index')
我的问题是如何将用户的字段放入我的 ProjectView 中,以便我可以在模板中使用它们?特别是,我想显示登录用户的姓名和电子邮件。
用户信息放在请求上,而不是视图上。所以你可以在模板中写{{user.username}}
,或者{{user.email}}
。你会明白的。当然如果user.is_authenticated
在您的模板中写入:
{% if request.user.is_authenticated %}
{{ request.user.username }}
{{ request.user.email }}
{% endif %}