2016-12-13 82 views
0

我在我的Django项目如下模式:从django.contrib.auth.models.User带来信息进入查看

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中,以便我可以在模板中使用它们?特别是,我想显示登录用户的姓名和电子邮件。

+1

用户信息。所以你可以在模板“{{user.username}}”或者“{{user.email}}”中写入。你会得到它 –

回答

1

根据请求放置用户信息,而不是视图。所以你可以写在模板{{user.username}},或{{user.email}}。你会得到它。当然,如果在你的模板写user.is_authenticated

+0

谢谢,这工作!顺便说一句,在这种情况下,检查用户是否被认证是否是一种好语气的习惯? – MadPhysicist

+0

你可以在视图前使用'@ login_required'装饰器 –

1

:放置在要求,而不是观点

{% if request.user.is_authenticated %} 
    {{ request.user.username }} 
    {{ request.user.email }} 
{% endif %}