Мое приложение использует «сеанс для каждого пользователя», чтобы разрешить нескольким сеансам от одного пользователя совместно использовать состояние. Он работает очень похоже на сессию Django, выбирая объекты.
Мне нужно выбрать сложный объект, который ссылается на объекты модели Django. Стандартный процесс травления сохраняет денормализованный объект в травлении. Таким образом, если объект изменяется в базе данных между травлением и снятием травления, модель устарела. (Я знаю, что это верно и для объектов в памяти, но травление - удобное время для решения этой проблемы.)
Ясно, что было бы чище хранить этот комплекс в базе данных, но это не практично. Код для этого обязательно меняется быстро по мере развития проекта. Необходимость обновлять схему базы данных каждый раз, когда изменяется модель данных объекта, сильно замедляет проект.
Так что мне бы хотелось, чтобы не был засолен полный объект модели django. Вместо этого просто сохраните его класс и идентификатор и повторно загрузите содержимое из базы данных при загрузке. Могу ли я указать собственный метод pickle для этого класса? Я рад написать класс-оболочку для модели django, чтобы обрабатывать ленивую выборку из базы данных, если есть способ сделать засолку.