Как добавить отношения "многие ко многим" после сохранения в django?

Я пытаюсь создать простое приложение ToDo на django: 'ящик' содержит несколько 'задач', имеет 'владельца' (человека, который создал ящик и имеет административные привилегии) и несколько 'пользователей' (людей, которые могут получить доступ к ящику и добавлять/редактировать задачи).

Я хочу автоматически добавить владельца в набор пользователей. Я пробовал сделать это несколькими способами: Перезаписывая save():

class Box(models.Model):
    owner = models.ForeignKey(User, related_name='boxes_owned', on_delete=models.CASCADE, null=True, blank=False)
    users = models.ManyToManyField(User, related_name='boxes_assigned')
    title = models.CharField(max_length=50)
    description = models.TextField(null=True, blank=True)

    def save(self):
        super().save()

        self.users.add(self.owner)

Это не работает, как и работа с сигналом после сохранения.

@receiver(post_save, sender=Box)
def update_box(sender, instance, **kwargs):
    instance.users.add(instance.owner)

Владелец не будет добавлен в набор пользователей.

Что я делаю неправильно, как я могу это исправить? Правильный ли это вообще подход?

Вернуться на верх