【发布时间】:2018-10-17 11:22:05
【问题描述】:
如果我在 django 中有这样的关系
class Reporter(models.Model):
pass
class Article(models.Model):
reporter = models.ForeignKey(Reporter)
我想立即创建一个带有文章的新记者,我首先必须将记者save() 发送到数据库,然后我才能添加文章。
但有时,我想“离线”准备所有内容(在某种意义上,在将任何内容推送到数据库之前),例如创建一个 Reporter 对象,向其中添加文章,然后可能仍然修改 Reporter 对象的某些属性.
然后,当一切都完成后,我想将所有内容一起推送到数据库。但是当然,当我在调用Reporter.save() 之前使用Reporter.article_set.add() 时,我会得到一个错误,因为django 会尝试自动将文章和外键添加到数据库中。有什么办法可以防止这种情况,并准备我的对象,包括“离线”关系?
我自己的方法是,将set_articles 方法添加到Reporter,然后覆盖save() 方法,以便检查是否设置了任何文章并在保存Reporter 后添加它们
但在我开始即兴创作之前,我想知道 django 中是否已经有任何解决方案
【问题讨论】:
标签: django django-models foreign-keys