我使用django-reversion
存储某些模型的历史记录。其中一些版本模型之间有“一对多”或“多到多”的关系。django-reversion
被正确地配置为“遵循”关系,因此所有模型都存储在相同的修订版中。
我不需要保存还原版本,我只需要能够反序列化存储在给定版本中的模型,并对其中一个反序列化模型(例如deserialized_model.object.get_summary()
)调用一个方法。问题是该方法访问相关对象,所使用的相关对象是当前数据库中的对象,而不是反序列化对象。我正在反序列化所有的模型,我需要在同一时间。
是否有任何方法使反序列化模型实例使用反序列化相关模型实例而不是实际实例?请注意,这不是django-reversion
问题,更多的是Django方面的问题。
编辑:
我试着用prefetch_related
欺骗Django。这样做的目的是将反序列化对象存储为预取结果,这样相关管理器就可以从那里检索对象,而不是从数据库中检索对象。还是没有运气。
发布于 2015-12-17 16:10:57
到目前为止,对这个问题最完整的答案是:不可能使反序列化模型实例使用其他反序列化模型实例作为相关对象。
发布于 2015-12-17 15:41:40
django-reversion
有一个问题跟踪器:https://github.com/etianen/django-reversion/issues
我会从那里开始,因为项目所有者可能不会对此进行监控。你也可以从90名贡献者或60名观察者那里得到答案。
https://stackoverflow.com/questions/34187112
复制相似问题