我有一个常见的情况:一个 User 模型和一个 Employee 模型,它们通过 user_id 上的一对一关系与 User 相关。我的用户模型是定制的,其中一种定制是“is_employee”方法:
class User(AbstractUser):
def is_employee(self):
print(self.id)
print(self.employee is not None)
return self.employee is not None
is_employee.boolean = True
is_employee.short_description = _('Employee status')
class Employee(AddressMixin, models.Model):
user = OneToOneField(User,
primary_key=True,
related_name='employee',
on_delete=CASCADE)
phone_no = models.CharField(max_length=20,
blank=True,
default='')
mobile_no = models.CharField(max_length=20,
blank=True,
default='')
我User.is_employee
在管理站点上使用list_display
。问题是该函数User.is_employee
仅在该用户有 Employee 时才返回结果。如果没有,那么它会在它第一次遇到调用self.employee
ant 的地方停止执行,从而返回 None。这是我在管理员上看到的:最后一个用户最后一个用户的员工状态不是假而是无
对不起,如果问题很混乱。我对 Django 很陌生,这也是我在这个网站上的第一篇文章。先感谢您。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句