-1
我想在Django管理界面中只顯示自定義權限(我在模型中用Meta類創建的)。這是可能的和如何?是否有可能只在django管理員中顯示自定義的權限?
我想在Django管理界面中只顯示自定義權限(我在模型中用Meta類創建的)。這是可能的和如何?是否有可能只在django管理員中顯示自定義的權限?
我會考慮創建自己的自定義視圖來添加自定義權限,而不是試圖修改Django管理員。但是,如果您確定要使用Django管理員,則可以嘗試以下方法:
從子類UserChangeForm
開始,並覆蓋__init__
方法。使用包含您的自定義權限的查詢集設置self.fields['user_permissions'].queryset
。
from django.contrib.auth.forms import UserChangeForm
class MyUserChangeForm(UserChangeForm):
def __init__(self, *args, **kwargs):
super(MyUserChangeForm, self).__init__(*args, **kwargs)
custom_permissions = ????
self.fields['user_permissions'].queryset = custom_permissions
接下來,子類django.contrib.auth.admin.UserAdmin
,並使用您的形式,而不是UserChangeForm
。
from django.contrib.auth.admin import UserAdmin
class MyUserAdmin(UserAdmin):
form = MyUserChangeForm
最後,取消註冊默認UserAdmin
,並註冊您自己的。
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
我會用你自己建議的自定義視圖做tnx。 – kodmasin