Привлечение информации из 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 %}