【问题标题】:How can I distinguish a user is AminUser or normal User in the custom User model?如何区分自定义用户模型中的用户是 AminUser 还是普通用户?
【发布时间】:2017-11-06 04:38:39
【问题描述】:

我想通过继承 AbstractUser 来创建自定义用户:

https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#substituting-a-custom-user-model

但是,对我来说有一个问题,当我使用权限时,有一个IsAdminUser 权限。

如果我有两个自定义用户模型,例如用户模型和 AminUser 模型(它们都继承自 AbstractUser)。如何在自定义 User 模型中区分用户是 AminUser 还是普通用户?

【问题讨论】:

标签: python django


【解决方案1】:

在您的用户模型中,将布尔字段定义为 isAdminUser。现在,对于普通用户,将此布尔字段设置为 false,如果用户是管理员,则设置为 True。根据 isAdminUser 的值,您可以执行特定于用户的操作或特定于管理员的操作。例如:

class ClientUser(AbstractBaseUser):

   username = models.CharField(max_length=20,unique=True)
   name = models.CharField(max_length=20)
   email = models.EmailField(max_length=254,null=True,blank=True)
   company = models.ManyToManyField(ClientCompany,null=True,blank=True)
   date_joined = models.DateTimeField(('date joined'), default=timezone.now)
   is_active   = models.BooleanField(default=True)
   is_admin    = models.BooleanField(default=False)
   is_staff    = models.BooleanField(default=False)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 2019-10-17
    • 2020-08-22
    • 2011-08-25
    • 2014-12-02
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多