Я использую django-reversion
для хранения истории некоторых моделей. Некоторые из этих версий моделей имеют отношения «один-много» или «многие-многие» между ними. django-reversion
правильно настроен на «следовать» отношениям, так что все модели сохраняются в одной и той же ревизии.Модели обессеривания и связанные с ними модели
Мне не нужно сохранять версии восстановления, я просто должен иметь возможность десериализовать модели, хранящиеся в данной редакции, и вызвать метод на одной из десериализованных моделей (например, deserialized_model.object.get_summary()
). Проблема в том, что метод обращается к связанным объектам и к связанным объектам, которые используются в настоящее время в базе данных, а не к десериализованным объектам. Я десериализую все модели, которые мне нужны в то же время.
Есть ли способ сделать десериализованные экземпляры модели использовать десериализованные примеры экземпляров модели вместо реальных экземпляров? Обратите внимание, что это не вопрос django-reversion
, это больше на стороне Django.
EDIT:
Я пытался обманывать Django с prefetch_related
. Идея заключалась в том, чтобы сохранить десериализованные объекты в качестве предварительно заданных результатов, чтобы связанные менеджеры могли извлекать объекты оттуда, а не из базы данных. Еще не повезло.
У вас возникла проблема с проектом github? – dnozay
Нет, я надеюсь, что в прошлом кто-то сделал что-то подобное, ожидая ответа, откроет билет, если ничего не появится. –
@dnozay. Вы можете отправить сообщение с этим комментарием, щедрость истекает через три дня, и было бы обидно, если я не смогу присудить его кому-либо. Даже если ответ не тот, который я ожидаю, это правильный ответ. –