Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
合并了2个django项目的权限。如何将它们分开?_Django_Django Models - Fatal编程技术网

合并了2个django项目的权限。如何将它们分开?

合并了2个django项目的权限。如何将它们分开?,django,django-models,Django,Django Models,(大家好) 我创建了一个具有自定义权限的自定义用户模型。我有几个项目,它们的权限合并到一个表中(“auth_permission”)。是否有可能通过某种方式自定义表格本身,以获得单独项目的这些权限?(例如,db_table='“schema”;“table”到模型)。谷歌没有给出答案 class TestUser(AbstractUser): phone = PhoneNumberField(null=False, blank=False, unique=True) email = CharFi

(大家好) 我创建了一个具有自定义权限的自定义用户模型。我有几个项目,它们的权限合并到一个表中(“auth_permission”)。是否有可能通过某种方式自定义表格本身,以获得单独项目的这些权限?(例如,
db_table='“schema”;“table”
到模型)。谷歌没有给出答案

class TestUser(AbstractUser):
phone = PhoneNumberField(null=False, blank=False, unique=True)
email = CharField(unique=True, max_length=35, null=False, blank=False)

class Meta:
    db_table = '"fyzzys"."users"'
    permissions = [
        ("can_see_payments", "payments"),
        ("can_see_analytics", "analytics"),
    ]
UPD:这是一个屏幕截图,显示了管理面板中两个完全不同的项目同时拥有的权限


为了授予用户权限,您需要像这样将PermissionsMixin添加到用户模型中

class TestUser(AbstractBaseUser,PermissionsMixin):
如果您使用的是
AbstractUser
,那么实际上您已经继承了
PermissionsMixin

permissionmixin是
django.contrib.auth.models
中的一个模型。它将以下字段(用户表中的列)添加到用户模型中;是超级用户、组、用户权限。权限混合允许您添加(和删除)0..*(许多)个人或组权限

要向用户添加权限,然后可以使用

来自django.contrib.auth.models导入权限
#权限必须首先存在。
permission=permission.objects.get(name='Can view poll')
u、 用户权限。添加(权限)

可在以下链接中找到的代码。

您是使用django权限还是运行自己的自定义权限模型?@MattSeymour我使用的是django权限。如果我将使用自定义权限模型,我可以选择表?我得到了以下错误:(models.E006)字段“is_superuser”与模型“registration1.testuser”中的字段“is_superuser”冲突。这篇文章说,AbstractUser和PermissionsMixin导致冲突对不起,我的错,AbstractUser带来了权限混合。我将更新我的答案以修复。使用AbstractBaseUser而不是AbstractUsers是否可以不使用AbstractBaseUser?我听说只有在万不得已的情况下才需要使用它。它还将使代码复杂化,并且必须对其进行重写,作为初学者,我不希望出现这种情况。另一个问题是如何使管理面板使用我的权限查看表,而不是默认值?您的意思是如何让管理面板查看TestUser模型?