Я добавил ответ, потому что думаю, что не точно описал свой вопрос.
Мне нужно создать уровень абстракции, в котором модель верхнего уровня будет иметь некоторые из основных полей
Все производные / дочерние элементы верхнего уровня имеют те же поля, что и этот верхний уровень, и некоторые другие специфические поля.
Если одно из дочерних полей (это из верхнего уровня) не изменено, чем представлено поле верхнего уровня,
Если произошло изменение, то будет представлено значение от child.
если в модели верхнего уровня произошли изменения, то все дочерние элементы, которые не были изменены, представят данные из верхней модели.
Моя идея состоит в том, чтобы использовать отношение ManyToOne и использовать модели Parent и Child, где child будет иметь те же поля, что и parent (дублирование данных), и некоторые дополнительные поля.
Когда будет создан child, я планирую скопировать данные из parent для дублированных полей.
Для каждого дублированного поля дочернего элемента я планирую добавить логическое поле для проверки, изменилось ли поле, и соответственно изменить его на true при сохранении дочернего измененного поля.
Когда происходит сохранение родительского элемента, я планирую добавить дополнительный метод для перезаписи дочернего поля и скопировать родительские данные, если для дочернего логического (field_changed) задано значение false, иначе не перезаписывать.
Есть ли лучший способ для этого?