2016-12-13 76 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 %}