Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “Django权限隐藏”;授权“许可”;_Python_Django_Permissions_Admin - Fatal编程技术网

Python “Django权限隐藏”;授权“许可”;

Python “Django权限隐藏”;授权“许可”;,python,django,permissions,admin,Python,Django,Permissions,Admin,我有一个Django应用程序1.7,我们在auth应用程序(默认情况下存在)中设置了一些权限,因为这些权限不绑定到我们的任何应用程序,它们出现在管理员权限列表中,如下所示: auth|permission|<mypermissionname> <myapp>|<mymodule>|<mypermissionname> auth |权限| 在另一个层面上,我们拥有绑定到我们的应用程序和模型的权限,因此它们显示如下: auth|permissio

我有一个Django应用程序1.7,我们在auth应用程序(默认情况下存在)中设置了一些权限,因为这些权限不绑定到我们的任何应用程序,它们出现在管理员权限列表中,如下所示:

auth|permission|<mypermissionname>
<myapp>|<mymodule>|<mypermissionname>
auth |权限|
在另一个层面上,我们拥有绑定到我们的应用程序和模型的权限,因此它们显示如下:

auth|permission|<mypermissionname>
<myapp>|<mymodule>|<mypermissionname>
||
有没有办法将两者对齐?最好的情况是从这些权限中删除“auth | permission”部分?它们不必在数据库中重新命名,只用于化妆品

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)