Модель сотрудника, связанная с пользователем 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 }}
Вернуться на верх