我上了这个课:
class PersonAdmin(admin.ModelAdmin):
def get_queryset(self, request):
if request.user.is_superuser:
....
def delete_queryset(self, request):
if request.user.is_superuser:
....
基本上,我会继续重复if request.user.is_superuser
。我想要的是设置一个初始标志,以便我可以继续重用它。为什么?因为逻辑可以更改为if request.user.is_superuser or ...
,所以我不想到处重复。我看着__init__()
,却看不到有一种做我想做的方法。
答案 0 :(得分:1)
在PersonAdmin上创建函数的最佳方法,例如has_permission。
class PersonAdmin(admin.ModelAdmin):
def get_queryset(self, request):
if self.has_permission(request.user):
....
def delete_queryset(self, request):
if self.has_permission(request.user):
....
def has_permission(self, user):
# later at other logic
return user.is_superuser