如何为一个对象分配不同模型的权限?

问题描述

我有这个模型 我需要将权限关系模型分配给对象 TableRelation 模型,因为我想要一个模型权限

   class Relation(models.Model):
        title = models.CharField(max_length=100)
        layer = models.ForeignKey(Layer,blank=True,null=True,on_delete=models.CASCADE)
        related_from_table = models.CharField(max_length=150,default='',blank=True)
        related_from_connection = models.ForeignKey(DataBaseProfile,on_delete=models.CASCADE)
        related_source_field = models.CharField(max_length=150)

    def __str__(self):
        return self.title

    class Meta:
        permissions = (
            ('view_relate','Can view relate'),('delete_relate','Can delete relate'),('add_relate','Can add relate'),('edit_relate','Can edit relate'),)

class TableRelation(Relation):
    connection = models.ForeignKey(DataBaseProfile,blank=False,on_delete=models.PROTECT)
    related_table = models.CharField(max_length=150)
    related_destination_field = models.CharField(max_length=150)
    related_table_fields = JSONField()
    related_table_fields_view = JSONField(default=dict)
    form = models.OnetoOneField(Form,on_delete=models.CASCADE)

    class Meta:
        default_permissions = ()

class APIRelation(Relation):
    class Meta:
        default_permissions = ()

    api_profile = models.ForeignKey(
        APIProfile,on_delete=models.CASCADE)
    connection = models.ForeignKey(DataBaseProfile,on_delete=models.PROTECT)

我想使用父级权限,而不是在智利模型上创建单独的权限。 例如:

from guardian.shortcuts import assign_perm
assign_perm('relates.view_relation',user,table_relate_obj)
assign_perm('relates.add_relation',table_relate_obj)
assign_perm('relates.change_relation',table_relate_obj)
assign_perm('relates.delete_relation',table_relate_obj)

在这个例子中不起作用 谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)