2016-03-29 16 views
3

グループを選択してis_staffを選択することはできますか?Django admin is_staff(グループベース)

新しいユーザーがユーザーグループに所属している場合、彼はスタッフではなく、管理者グループに所属している場合、そのユーザーはスタッフです。

+0

http://stackoverflow.com/questions/2334655/django-override-user-modelが助けてくれる – Benjamin

答えて

1

私はUSERADMINクラスを拡張してそれを動作させるために管理し、get_form機能で、私はmascot6699の答えの助けを借りてこれを置い:

if obj.groups.filter(name="Administrator").exists(): 
    obj.is_staff = True 
else: 
    obj.is_staff = False 

だから、私は(管理者メニューで)ユーザーを配置するたびに管理者グループはis_staffオプションをチェックし、それ以外の場合はチェックを外します。

2

が、これはこのように管理者ログインまたはあなたはあなたがあなたが欲しいものを得ることになるuser_object.is_staffから呼び出す他の時間の間に、ユーザーモデル

@property 
def is_staff(self): 
    if self.is_staff == True or self.groups.filter(name="staff").exists() 

で次のように定義する簡単な方法がありますグループの基礎も。

+0

私はこの回答をあまりに早くupvotedしましたが、これはうまくいきません。内側の 'is_staff'を呼び出すと、' is_staff'が呼び出され、yuがループで終了します – MartinM