将 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 %}