链接到 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= 上显示员工模型中的 title
和 firstname
]
您正在使用 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 }}
我有 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= 上显示员工模型中的 title
和 firstname
]
您正在使用 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 }}