2017-11-06 14 views
0

私はAbstractUserを継承してカスタムユーザーを作成したい:カスタムユーザーモデルでAminUserまたは通常のユーザーを区別するにはどうすればよいですか?

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

しかし、私にとっての問題は、私はアクセス許可を使用する場合、IsAdminUser許可があるがあります。

UserモデルとAminUserモデルのような2つのカスタムUserモデルがあります(すべてがAbstractUserフォームを継承しています)。カスタムユーザーモデルで、ユーザーをAminUserまたは通常ユーザーと区別するにはどうすればよいですか?

+0

組み込み関数isinstance(obj、class)があります。 –

+0

ユーザーを区別することができるユーザー権限でユーザー権限を確認するだけで済みます。 https://stackoverflow.com/questions/16573174/how-to-get-user-permissions –

答えて

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) 
関連する問題