Nir*_*pla 5 python django permissions django-admin
我正在使用 Django 1.8.1。这是我第一次自定义管理屏幕。
列表中默认有一些权限,如 admin|entry log、auth|group 等。我想从列表中删除这些权限。在Django 管理员的帮助下,我能够从用户编辑屏幕上的列表中过滤掉这些权限- 更改权限列表
我的问题是添加/编辑组屏幕。在这个屏幕上,这些权限仍然存在。以下是该页面的屏幕截图。

如何从此列表中删除某些权限?
我试图通过扩展 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] 的权限。
| 归档时间: |
|
| 查看次数: |
5671 次 |
| 最近记录: |