Исходя из этого вопроса: Как автоматически создать новый объект после создания другого объекта в 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,)