在我的应用程序中,当保存模型时,我需要保存更改的值(旧的和新的).有什么示例或工作代码吗?
我需要这个来预审内容.例如,如果用户更改了模型中的某些内容,则管理员可以在单独的表中查看所有更改,然后决定是否应用它们.
在我的应用程序中,当保存模型时,我需要保存更改的值(旧的和新的).有什么示例或工作代码吗?
我需要这个来预审内容.例如,如果用户更改了模型中的某些内容,则管理员可以在单独的表中查看所有更改,然后决定是否应用它们.
关于您的特定用例或需求,您没有说太多.特别是,了解您需要如何处理更改信息(您需要将其存储多长时间?)会很有帮助.如果您只需要暂时存储它,@S.Lott的会话解决方案可能是最好的.如果您想要对存储在数据库中的对象的所有更改进行完整的审计跟踪,请try 这个AuditTrail solution.
UPDATE:我链接到上面的AuditTrail代码是我见过的最接近于适用于您的情况的完整解决方案的代码,尽管它有一些限制(对ManyToMany字段完全不起作用).它将在数据库中存储对象的所有以前版本,因此管理员可以回滚到任何以前版本.如果您希望更改在获得批准之前不生效,则必须对其进行一些修改.
您还可以基于@Armin Ronacher的DiffingMixin之类的东西构建自定义解决方案.您会存储diff字典(可能是腌制的?)在供管理员稍后查看并根据需要应用的表中(您需要编写代码以获取diff字典并将其应用于实例).