我的应用使用“每用户会话”来允许来自同一用户的多个会话共享状态。它通过酸洗对象与django会话非常类似。如何为django模型对象自定义pickle
我需要腌制一个指向django模型对象的复杂对象。标准酸洗过程在酸菜中存储非规格化对象。因此,如果对象在酸洗和取消打印之间发生更改,则该模型现在已过时。 (我知道这对于内存中的对象也是如此,但酸洗对于解决这个问题是一个方便的时间。)
显然,将这个复合体存储在数据库中会更干净,但这不实用。随着项目的发展,它的代码必然会迅速变化。每次对象的数据模型更改时必须更新数据库模式会使项目速度下降很多。
所以我想要的是一种不腌制完整的django模型对象的方法。相反,只需存储其类和id,并在加载时从数据库中重新获取内容。我可以为这个类指定一个自定义的pickle方法吗?如果有办法进行酸洗,我很乐意在django模型中编写一个包装类来处理来自数据库的延迟读取。
为什么你想用'pickle'来保存你的数据?你能提供更多细节吗?这听起来像你可能会更好地将数据保存在db – Zach 2010-03-15 15:03:33
是的,将它存储在数据库中会更干净,但这不切实际。我保存的对象非常复杂,随着项目的发展必然会迅速发生变化。每次更改有关该对象存储的内容时都必须更新数据库模式,从而导致项目停止。 – muudscope 2010-03-15 15:22:11
请用更多的事实更新你的问题。你拥有这个问题;你并不局限于将评论串在一起。请更新问题。请解释为什么JSON不适合您的问题。 – 2010-03-15 15:37:19