【发布时间】:2021-11-03 10:23:04
【问题描述】:
我有一个自定义用户模型,我需要向具有某些角色(用户模型中的字段)的用户授予权限,但我在 Internet 上找不到任何示例,所以我向任何拥有此权限的人询问示例以前做过。这是我的抽象用户模型供参考:
class User(AbstractBaseUser, PermissionsMixin):
class RoleChoices(models.TextChoices):
admin = 'Admin', _('Admin')
cashier = 'Cashier', _('Cashier')
waiter = 'Waiter', _('Waiter')
courier = 'Courier', _('Courier')
customer = 'Customer', _('Customer')
username = models.CharField(_('username'), unique=True, max_length=100)
name = models.CharField(_('name'), max_length=100)
surname = models.CharField(_('surname'), max_length=100)
phone_number = models.CharField(_('phone_number'), max_length=100, null=True, default='Invalid Phone Number')
role = models.CharField(max_length=50, choices=RoleChoices.choices, default=RoleChoices.customer)
active = models.BooleanField(default=True)
date_joined = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['name', 'surname']
class Meta:
ordering = ['date_joined', ]
def __str__(self):
return self.username
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
@property
def is_active(self):
return self.active
objects = CustomUserManager()
提前致谢,如有语法错误,敬请原谅。
【问题讨论】:
标签: python-3.x django authentication permissions