Привлечение информации из django.contrib.auth.models.User в представление

У меня есть следующая модель в моем проекте 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, чтобы затем использовать их в шаблонах? В частности, я хотел бы отобразить имя вошедшего в систему пользователя и адрес электронной почты.

2 ответа

Решение

Пользовательская информация размещается по запросу, а не по просмотрам. Так что вы можете написать в шаблоне {{user.username}}, или же {{user.email}}, и вы получите это. Конечно, если user.is_authenticated

В своем шаблоне напишите:

{% if request.user.is_authenticated %} 
  {{ request.user.username }} 
  {{ request.user.email }}
{% endif %}
Другие вопросы по тегам