如果我在django有这样的关系
class Reporter(models.Model):  
    pass
class Article(models.Model):
    reporter = models.ForeignKey(Reporter)我想创建一个新的记者与文章一次,我首先必须save()的记者到数据库,然后我可以添加文章。
但有时,我想准备一切“离线”(从某种意义上说,在将任何东西推送到数据库之前),比如创建一个Reporter对象,向其添加文章,然后可能仍在修改Reporter对象的一些属性。
然后,当一切都完成后,我希望将所有内容一起推送到DB。但当然,当我在调用Reporter.save()之前使用Reporter.article_set.add()时,我会得到一个错误,因为django会尝试自动将项目和外键添加到数据库中。有没有办法防止这种情况,并让我的对象“离线”包含关系?
我自己的方法是,向Reporter添加一个set_articles方法,然后覆盖save()方法,这样它将检查是否设置了任何项目,并在保存Reporter后添加它们
但在我开始即兴发挥之前,我想知道django中是否已经有了任何解决方案
发布于 2018-10-17 21:42:17
save()方法接受可选的commit关键字参数,该参数接受True或False。如果您使用commit=False调用save(),那么它将返回一个尚未保存到数据库的对象。在本例中,您可以在生成的模型实例上调用save()。
https://stackoverflow.com/questions/52853692
复制相似问题