假设A
并且B
是 django 模型,其中A
有一个外键字段B
:
a = A()
b = B()
a.my_b = b
b.save()
a.save()
令人惊讶a
的是保存null
在外my_b
键字段中。如果您a.my_b
在保存之前或之后检查它确实引用了该b
实例,但是似乎 django 在a.my_b = b
分配时评估外键 id 本身,而不是在a.save()
. 在复杂的系统和流程中,可能很难更改命令的顺序,因此b
在分配之前简单地保存a
可能是不切实际的......
在保存命令之间添加令人难以置信的语句a.my_b=a.my_b
是可行的,但在我看来是一个可怕的解决方法。
有没有办法配置 django 在保存模型实例时重新评估外键?
是否有不同的方法可以解决这个问题?