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