Может ли Django автоматически создавать другие объекты, если создаются новые объекты? - PullRequest
0 голосов
/ 06 июня 2019

Исходя из этого вопроса: Как автоматически создать новый объект после создания другого объекта в django?

Мне нужна модель, которая автоматически создает новые объекты при создании нового объекта. Итак, я попробовал это

class Book(models.Model):
    author = models.CharField(max_length=30)
    title = models.CharField(max_length=30)
    foo = models.IntegerField(default=0)

    def save(self, *args, **kwargs):
        is_new = True if not self.id else False
        super(Book, self).save(*args, **kwargs)
        if is_new:
            part_2 = Book.objects.create(author_id = self.author.id,
                                         title = self.title,
                                         foo = self.title + 1,)

Таким образом, моя идея заключалась в том, что если я создаю новый экземпляр Book, он автоматически создает экземпляр Book с теми же данными, кроме foo, которые должны быть подняты.

При попытке сохранить новую запись появляется ошибка рекурсии

maximum recursion depth exceeded while calling a Python object
Request Method:     POST
Request URL:     
http://localhost:8000/admin/bookcreator/book/add/
Django Version:     2.2
Exception Type:     RecursionError
Exception Value:    

maximum recursion depth exceeded while calling a Python object


 /Django/bookcreator/models.py in save

 title = self.title, foo =  self.foo + 1,)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...