Я хочу, чтобы у главы модели было два статуса.Один является общедоступным, другой - только для разрешенной группы.
Поэтому, я думаю, мне нужно разрешение объекта для применения на практике.Я также надеюсь, что смогу назначить разрешение всякий раз, когда создаю или редактирую объект
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?