Если у меня есть подобное отношение в django
class Reporter(models.Model):
pass
class Article(models.Model):
reporter = models.ForeignKey(Reporter)
, и я хочу создать новый репортер со статьями сразу, я сначала должен save()
Reporter to DB, а затем я могу добавитьстатьи.
Но иногда я хотел бы подготовить все "в автономном режиме" (в смысле, перед тем, как что-либо помещать в БД), например, создать объект Reporter, добавить к нему статьи и, возможно, впоследствии изменитьнекоторые атрибуты объекта Reporter.
Затем, когда все будет сделано, я хочу отправить все вместе в БД.Но, конечно, когда я использую Reporter.article_set.add()
перед вызовом Reporter.save()
, я получу ошибку, потому что django попытается автоматически добавить статьи и внешние ключи в БД.Есть ли способ предотвратить это и подготовить мой объект, включив в него отношения "офлайн"?
Мой собственный подход заключается в добавлении метода set_articles
к Reporter
, а затем переопределении метода save()
поэтому он проверит, есть ли какие-либо статьи и добавит их после сохранения Reporter
Но прежде чем начать импровизировать, я хотел бы знать, есть ли уже какие-либо решения в django