链接到 Django 用户的员工模型

Employee model Linked to Django User

我有 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 }} 访问用户名,但我想在 [=18= 上显示员工模型中的 titlefirstname ]

您正在使用 ForeignKey 到 link Employee 到 User,因此您可以从 User 实例访问所有相关 Employee 对象的 QuerySet(使用您提供的 related_name)。像那样:

{% for employee in request.user.employees.all %}
    {{ employee.title }} {{ employee.firstname }}
{% endfor %}

如果您计划为一个 User 对象恰好有一个 Employee 对象,最好使用:

user = models.OneToOneField(User, on_delete=models.CASCADE)

因为这样你就可以轻松获得Employee字段值:

{{ request.user.employee.title }} {{ request.user.employee.firstname }}