是否可以在没有相应字段的情况下在 django 中设置属性(为了向后兼容)?这是一个带有自定义用户模型的简单测试用例:
class CustomUser(AbstractBaseUser):
email = models.EmailField(max_length=254, unique=True, db_index=True)
USERNAME_FIELD = 'email'
...
permissions = models.IntegerField(default=0)
@property
def is_staff(self):
return self.permissions >= 2
@is_staff.setter
def is_staff(self, value):
if value and not self.is_staff:
self.permissions = 2
if not value and self.is_staff:
self.permissions = 1
现在,当我尝试使用默认管理界面加载此用户时,我收到以下错误:'CustomUserAdmin.list_filter[0]' refers to 'is_staff' which does not refer to a Field.
有没有办法设置它,以便模型is_staff
作为另一个字段的函数提供?