标签:python django permissions django-admin
我正在使用Django 1.8.1.这是我第一次自定义管理员屏幕.
默认情况下,列表中有一些权限,例如admin | entry log,auth | group等.我想从列表中删除这些权限.我能够在Django admin – change permissions list的帮助下从用户编辑屏幕上的列表中筛选出这些权限
我的问题是添加/编辑组屏幕.在这个屏幕上,这些许可仍然存在.以下是该页面的屏幕截图.
如何从此列表中删除一些权限?
解决方法:
我尝试通过扩展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,sessions,users,contenttypes]的权限.
标签:python,django,permissions,django-admin 来源: https://codeday.me/bug/20190829/1761184.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。