如何在自定义用户模型中区分用户是AminUser还是普通用户?

时间:2017-11-06 04:38:40

标签: python django

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

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

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

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

1 个答案:

答案 0 :(得分:0)

在您的用户模型中,将一个布尔字段定义为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)