Django Admin - 从添加/编辑组页面上的列表中删除权限

Nir*_*pla 5 python django permissions django-admin

我正在使用 Django 1.8.1。这是我第一次自定义管理屏幕。

列表中默认有一些权限,如 admin|entry log、auth|group 等。我想从列表中删除这些权限。在Django 管理员的帮助下,我能够从用户编辑屏幕上的列表中过滤掉这些权限- 更改权限列表

我的问题是添加/编辑组屏幕。在这个屏幕上,这些权限仍然存在。以下是该页面的屏幕截图。 在此处输入图片说明

如何从此列表中删除某些权限?

Nir*_*pla 7

我试图通过扩展 GroupAdmin 类并覆盖 get_form 方法来做到这一点。但不幸的是,这对我不起作用。get_form 方法根本没有被调用。我不知道原因。

以下解决了我的问题:

class MyGroupAdminForm(forms.ModelForm):

    class Meta:
        model = Group
        fields = ('name', 'permissions')

    permissions = forms.ModelMultipleChoiceField(
        Permission.objects.exclude(content_type__app_label__in=['auth','admin','sessions','users','contenttypes']),
        widget=admin.widgets.FilteredSelectMultiple(_('permissions'), False))

class MyGroupAdmin(admin.ModelAdmin):
    form = MyGroupAdminForm
    search_fields = ('name',)
    ordering = ('name',)

admin.site.unregister(Group)
admin.site.register(Group, MyGroupAdmin)
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我成功地从添加/编辑组屏幕上的可用权限列表中删除了应用程序 [auth、admin、sessions、users、contenttypes] 的权限。