1

i have this model i need to assign permission Relation model to object TableRelation model because i want have one model permission

   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, null=True, 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, null=True, 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, blank=True, null=True, on_delete=models.PROTECT)

I want to use parent-class permissions and not create separate permissions on the chile models. for example:

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

that do not work this example thanks

Ali Kafy
  • 11
  • 2

0 Answers0