Производное задание модели в Джанго - PullRequest
0 голосов
/ 19 сентября 2018

Рассмотрим модель Джанго B, полученную из модели 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 голосов
/ 20 сентября 2018

A и его производная модель B имеют один и тот же первичный ключ, поскольку он реализован как OneToOneField.

Так что вопрос, является ли он первичным ключом A или B не имеет смысла, это одно и то же значение первичного ключа для A и для B.

Вкратце: присваивание c.a = b работает, как и ожидалось, поскольку существует только один первичный ключ дляb рассмотреть.

...