2015-12-09 6 views
1

Я использую django-reversion для хранения истории некоторых моделей. Некоторые из этих версий моделей имеют отношения «один-много» или «многие-многие» между ними. django-reversion правильно настроен на «следовать» отношениям, так что все модели сохраняются в одной и той же ревизии.Модели обессеривания и связанные с ними модели

Мне не нужно сохранять версии восстановления, я просто должен иметь возможность десериализовать модели, хранящиеся в данной редакции, и вызвать метод на одной из десериализованных моделей (например, deserialized_model.object.get_summary()). Проблема в том, что метод обращается к связанным объектам и к связанным объектам, которые используются в настоящее время в базе данных, а не к десериализованным объектам. Я десериализую все модели, которые мне нужны в то же время.

Есть ли способ сделать десериализованные экземпляры модели использовать десериализованные примеры экземпляров модели вместо реальных экземпляров? Обратите внимание, что это не вопрос django-reversion, это больше на стороне Django.

EDIT:

Я пытался обманывать Django с prefetch_related. Идея заключалась в том, чтобы сохранить десериализованные объекты в качестве предварительно заданных результатов, чтобы связанные менеджеры могли извлекать объекты оттуда, а не из базы данных. Еще не повезло.

+0

У вас возникла проблема с проектом github? – dnozay

+0

Нет, я надеюсь, что в прошлом кто-то сделал что-то подобное, ожидая ответа, откроет билет, если ничего не появится. –

+0

@dnozay. Вы можете отправить сообщение с этим комментарием, щедрость истекает через три дня, и было бы обидно, если я не смогу присудить его кому-либо. Даже если ответ не тот, который я ожидаю, это правильный ответ. –

ответ

0

На данный момент наиболее полным ответом на вопрос является: Невозможно, чтобы экземпляры десериализованной модели использовали другие десериализованные экземпляры модели в качестве связанных объектов.

0

Существует проблема трекер для django-reversion: https://github.com/etianen/django-reversion/issues

Я хотел бы начать там, как владелец проекта не может быть мониторинг SO. Вы также можете получить ответы от ~ 90 участников или ~ 60 наблюдателей.

Смежные вопросы