Как скопировать объект, используя многостоловое наследование в Django
Я пытаюсь скопировать объект, который расширяет другой объект через многостоловое наследование.
Родитель - это группа, а ребенок - это местоположение.
Проблема в том, что родительский объект изменяется вместо создания нового родительского и дочернего объекта.
Вот что я делаю:
location = get_object_or_404(Location, pk=pk)
location.pk = None
location.name = location.name+' - child object'
location.save()
Вместо создания новой строки местоположения и группы в соответствующих таблицах это обновляет таблицу групп, чтобы иметь имя = имя + ' - дочерний объект'.
Как я могу этот процесс создать новое местоположение и строку группы вместо обновления строки группы?
Спасибо!
1 ответ
Ключевым моментом здесь является то, что многотабличное наследование в Django реализовано с использованием внешних ключей, поэтому объект, который "наследует" другую модель, просто привязан ForeignKey к этой другой модели. Вам нужно будет дублировать оба.
Чтобы узнать, как это сделать, проверьте решение в этом ответе.