django adminでモデルを条件付きで登録または登録解除することは可能ですか? リクエストがいくつかの条件を満たす場合にのみ、いくつかのモデルをdjango adminに表示したい。私の特定のケースでは、ログインしているユーザーが特定のグループに属しているかどうかを確認するだけでよく、ユーザーが (スーパーユーザーであっても) グループに属していない場合はモデルを表示しません。アクセス許可を使用してスーパーユーザーを除外することはできないため、ここではアクセス許可を使用できません。または、モデルのスーパーユーザーからでも許可を取り消す方法はありますか。
質問する
1537 次
2 に答える
7
モデルに対する権限は、 で動的に管理できますModelAdmin
。has_add-permission
メソッド、has_change_permission
および をオーバーライドしますhas_delete_permission
。
class MyModelAdmin(admin.ModelAdmin):
def has_add_permission(self,request):
# if request satisfies conditions:
# return True
#else:
# return False
他の 2 つの方法についても同様です。これはsuperuser
s でも機能します。3 つの権限をすべて取り消すMyModel
と、管理サイトに表示されなくなります。
管理サイトからエントリを非表示にするだけの場合はmodel
、単にメソッドをオーバーライドします
get_model_perms
。アクセス許可メソッドをオーバーライドする必要はありません。
def get_model_perms(self, request):
return {}
ただし、このメソッドは から権限を取り消しませんmodel
。モデルが管理サイトに掲載されていなくても、URLを入力することでアクセスできます。
于 2015-02-26T03:47:52.600 に答える