gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:30 26 4
gpt4 key购买 nike

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

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

我的问题是添加/编辑组屏幕。在此屏幕上,这些权限仍然存在。以下是页面的屏幕截图。 enter image description here

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

最佳答案

我试图通过扩展 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)

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

关于python - Django Admin - 从添加/编辑组页面上的列表中删除权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34487660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com