【发布时间】:2018-06-06 12:32:46
【问题描述】:
我使用 Django 2.0 和 mysql 数据库,我的项目模型是这样的:
class Parent(models.Model):
name = models.CharField()
class Child(models.Model):
number = models.IntegerField()
parent = models.ForeignKey(Parent)
我想要的是同时保存父对象和子对象,以便在任何情况下子对象有错误(如数字字段是“某些文本”)并且无法保存父对象不保存。
在 Flask(使用 postgresql)中有 add(object) 和 add_all([parent, child]) 方法,我使用 add_all 所以如果 child 有错误 parent 也不会保存。
但是在 Django 中我找不到这个方法。
默认方法是:
parent = Parent(name = "my name")
parent.save()
child = Child(number=3, parent=parent)
child.save()
我想要的是这样的:
parent = Parent(name = "my name")
child = Child(number=3, parent=parent)
然后:
child.save(with related parent)
或:
save(parent, child together)
PS:我阅读了这个链接,我认为“SET”方法是我需要的,但我不确定如何使用它以及是否是解决方案: django relations
【问题讨论】:
-
您对 Django 的
RelatedManager类有什么不清楚的地方?告诉我们“我想不通”对我们没有帮助。 -
问题已编辑
标签: python mysql django django-models database-relations