Модель сотрудника, связанная с пользователем Django
У меня есть модель Django User и я создал модель Employee, как показано ниже
class Employee(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='employees')
title = models.CharField(_('Title'), max_length=6, default='Mr', choices=TITLE, blank=False, null=True)
firstname = models.CharField(_('Firstname'), max_length=125, null=False, blank=False)
В моем sidebar.html я могу получить доступ к имени пользователя как {{ request.user }}, но я хочу показать title и firstname из модели Employee в sidebar.html
Вы используете ForeignKey для связи сотрудника с пользователем, поэтому из экземпляра User вы можете получить доступ к QuerySet всех связанных объектов сотрудника (используя имя related_name, которое вы предоставили). Например, так:
{% for employee in request.user.employees.all %}
{{ employee.title }} {{ employee.firstname }}
{% endfor %}
Если вы планируете иметь ровно один объект Employee для одного объекта User, лучше использовать:
user = models.OneToOneField(User, on_delete=models.CASCADE)
потому что тогда вы сможете легко получить Employee значения полей:
{{ request.user.employee.title }} {{ request.user.employee.firstname }}