django унаследованная модель, имеющая тот же pk, что и родительский - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть две модели, одна наследует от другой. Оба являются таблицами базы данных. При создании экземпляра унаследованной модели я хочу, чтобы он имел то же значение pk, что и родительский. Но, по какой-то причине, похоже, что когда они имеют одинаковый pk, унаследованный экземпляр продолжает обновляться как родительские обновления.

Например:

class ModelA(models.Model):
    id = models.UUIDField(default=uuid.uuid4, editable=False, db_index=True, unique=True, primary_key=True)
    title = models.CharField(max_length=1000)
    revision = models.IntegerField(default=0)

class ModelB(ModelA):
    pass

При создании нового экземпляра ModelB, Я делаю это (копируя идентификатор):

model_a_dict = ModelA.objects.filter(id=model_a.id).values()[0]
model_b = ModelB(id=model_a_dict['id'], title=model_a_dict['title'], revision=model_a_dict['revision'])
model_b.save()

Теперь, при обновлении model_a, model_b также обновляется. Например:

model_a.title = "other title"
model_a.save()

, тогда model_b.title также изменится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...