我想在 Django 管理界面中只显示自定义权限(我在模型中使用 Meta 类创建)。这可能吗?怎么做?
问问题
79 次
1 回答
1
我会考虑创建自己的自定义视图来添加自定义权限,而不是尝试修改 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
最后,取消注册 default UserAdmin
,并注册你自己的。
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
于 2012-11-27T17:29:23.533 回答