2つのモデルを検討してください(明らかな論理的な問題を無視します)。
class Owner(m.Model):
id = m.IntegerField(primary_key=True)
class Pet(m.Model):
owner = m.OneToOneField(Owner, related_name="pet", primary_key=True)
新しいを作成するときに、それらを自動的に保存Owner
することは可能ですか?.pet
現在、これは何が起こるかです:
>>> o = Owner()
>>> o.pet = Pet()
>>> o.save()
>>> o.id
42
>>> o.pet.id
None
>>> o.pet.owner_id
None
>>> o.pet.owner == o
True
o.pet
しかし、私はそれが保存の過程で保存されることを望んでいます(そして期待していますか?)o
。
ノート:
- オーバーライドを提案する場合
Owner.save
:どのようcommit=False
に処理する必要がありますか? OneToOneField
fromからPet
toに移動するOwner
と、データベーススキーマの意味が低下するため、望ましくありません。