Django 如何在模型类中使用override save()分配对象权限?

Django 如何在模型类中使用override save()分配对象权限?,django,Django,我希望模型章节有两种状态。一个是公共的,另一个只针对允许的群体 因此,我认为我需要对象许可才能付诸实践。我还希望在创建或编辑对象时可以分配权限 class Chapter(models.Model): chapter = models.PositiveSmallIntegerField() title = models.CharField(max_length=200, blank=True) content = models.TextField() book =

我希望模型章节有两种状态。一个是公共的,另一个只针对允许的群体

因此,我认为我需要对象许可才能付诸实践。我还希望在创建或编辑对象时可以分配权限

class Chapter(models.Model):
    chapter = models.PositiveSmallIntegerField()
    title = models.CharField(max_length=200, blank=True)
    content = models.TextField()
    book = models.ForeignKey('book', on_delete=models.CASCADE, null=True)
    AVAILABLE_STATUS = (
        ('p', 'public'),
        ('l', 'login user only')
    )
    status = models.CharField(
        max_length = 1,
        choices = AVAILABLE_STATUS,
        default = 'p',
        help_text='Chapter availability',
    )
    class Meta:
        ordering = ['chapter']
        unique_together = (("book", "chapter"),)
        permissions = (('author', "Can Create ,Edit , Delete"),
                   ('view_private_chapter',"Can View Private Chapter")
                  )
    def save(self, *args, **kwargs):
        if self.status=='l':
            group = Group.objects.get_or_create(name='private_chap_viewer')
            assign_perm('view_private_chapter', group, self)
        super().save(*args,**kwargs)
但我得到了一个错误:当我试图在admin中更改章节状态时,并不是所有的参数都在字符串格式化过程中转换。我应该如何使用assign_perm