假设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
可能是不切实际的......
在保存命令之间添加令人难以置信的语句{{1}}有效,但在我看来这是一个可怕的解决方法。
有没有办法在保存模型实例时配置django重新评估外键?
是否有可能解决此问题的不同方法?