我有一个Django app 1.7并且我们在auth app中设置了一些权限(默认情况下存在),因为这些权限没有绑定到我们的任何应用程序,它们出现在管理员权限列表中,如下所示:
auth|permission|<mypermissionname>
在另一个层面上,我们获得了与我们的应用程序绑定的权限。模型所以他们看起来像这样:
<myapp>|<mymodule>|<mypermissionname>
有没有办法对齐两者?最好的情况是从这些权限中删除“auth | permission”部分?它们不必在数据库中重命名,只是用于化妆品。
答案 0 :(得分:0)
class MyUserAdmin(UserAdmin):
def formfield_for_manytomany(self, db_field, request=None, **kwargs):
field = super(MyUserAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)
if db_field.name == 'user_permissions':
perms = []
for p in Permission.objectds.all():
if not str(p).startswith('auth'):
perms.append(p.name)
field.queryset = field.queryset.filter(name__in=perms)
return field
然后:
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)