Используя Django 2.1.5, у меня есть одна модель, которая полностью наследуется другой моделью. Обе таблицы в БД. Я хочу сохранить «ревизии» модели как унаследованную модель. Все поля должны быть одинаковыми на момент копирования (включая id / pk).
Какой правильный и быстрый способ скопировать экземпляр родительской модели в унаследованную?
Допустим, это модели (но с большим количеством полей, внешних ключей, json полей ..):
class MyModel(models.Model):
id = models.UUIDField(default=uuid.uuid4, editable=False, db_index=True, unique=True, primary_key=True)
identifier = models.IntegerField(default=-1)
title = models.CharField(max_length=1000)
revision = models.IntegerField(default=0)
class MyModelRevisions(MyModel):
pass
Теперь я хочу взять экземпляр MyModel и полностью скопировать его в MyModelRevisions , Я думал о чем-то вроде этого:
model_revision = MyModelRevisions(MyModel.objects.get(pk=my_model.pk))
model_revision.save()
Но я получаю сообщение об ошибке, в котором говорится, что заголовок my_model не является допустимым UUID.