Приложение, над которым я работаю, требует объединения моделей Django идентичного типа.Эти модели содержат состояние, которое может быть изменено хронологическими событиями, поэтому это не так просто, как глубокое копирование одного объекта в другой, так как не всегда корректно принимать последнее значение или всегда копировать истинные значения, например.
Я написал класс слияния моделей для обработки этой операции, однако мне нужно иметь возможность описать для каждого поля, должно ли оно быть включено в это слияние и, если оно должно быть включено, как обрабатывать это слияние.
Я уже пытался создать словарь, чтобы описать это поведение и передать его в слияние.Однако это становится громоздким на больших уровнях вложенности и очень хрупким для изменения кодовой базы.
Я также пытался добавить метод слияния к каждой отдельной модели, что решило проблему, но очень чувствительно к сбоям, если чужойключевые отношения, которые существуют в другой модели, пропущены или кодовая база изменилась.
Я начал писать собственную версию каждого поля в Django, так как эти поля кажутся правильным местом для логики, чтобы жить, ноон также чувствует себя громоздким и хрупким, чтобы поддерживать собственные версии каждого поля.
Есть ли способ в Django добавить дополнительный аргумент ключевого слова в базовый класс Field или, возможно, украсить каждое поле без необходимости их подкласса?
Спасибо