考虑两个模型(忽略明显的逻辑问题):
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
toOwner
是不可取的,因为它会导致不太明智的数据库模式。