Django中的派生模型分配

时间:2018-09-19 15:45:37

标签: python django django-models

考虑从模型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的主键吗?

1 个答案:

答案 0 :(得分:0)

A及其派生模型B具有相同的主键,因为它被实现为OneToOneField

因此是A还是B的主键这个问题没有意义,它是AB的主键值相同

简而言之:分配c.a = b可以按预期工作,因为b仅考虑一个主键。