A
およびB
が django モデルであると仮定すると、次A
の外部キー フィールドがありますB
。
a = A()
b = B()
a.my_b = b
b.save()
a.save()
驚いたことに、外部キー フィールドにa
保存されます。保存の前または後にチェックすると、インスタンスを参照しますが、django は外部キー id 自体を評価するようです。複雑なシステムやフローでは、コマンドの順序を変更するのが難しい場合があるため、割り当てる前に単純に保存するのは現実的ではありません...null
my_b
a.my_b
b
a.my_b = b
a.save()
b
a
保存コマンドの間に信じられないほどのステートメントを追加するa.my_b=a.my_b
と機能しますが、私には恐ろしい回避策のようです。
モデルインスタンスの保存時に外部キーを再評価するようにdjangoを設定する方法はありますか?
この問題を解決する別のアプローチはありますか?