【发布时间】:2012-11-06 10:24:46
【问题描述】:
假设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 分配而不是a.save() 时评估外键ID 本身.在复杂的系统和流程中,可能很难更改命令的顺序,因此在将 b 分配给 a 之前简单地保存它可能是不切实际的...
在保存命令之间添加令人难以置信的声明 a.my_b=a.my_b 有效,但在我看来这是一个可怕的解决方法。
有没有办法配置 django 在保存模型实例时重新评估外键?
是否有其他方法可以解决此问题?
【问题讨论】:
标签: django foreign-keys