考虑从模型B
派生的Django模型A
:
class A(models.Model):
# ...
class B(A):
# ...
现在让模型C
引用A
:
class C(models.Model):
a = models.ForeignKey('A')
我们有一个c
类的对象C
。
c.a = b
(其中b
是类B
的对象)会做正确的事,分配A
而不是B
的主键吗?
答案 0 :(得分:0)
A
及其派生模型B
具有相同的主键,因为它被实现为OneToOneField
。
因此是A
还是B
的主键这个问题没有意义,它是A
和B
的主键值相同
简而言之:分配c.a = b
可以按预期工作,因为b
仅考虑一个主键。