Django中的dirty字段

发布于 2021-01-29 19:08:05

在我的应用程序中,当保存模型时,我需要保存更改的值(旧值和新值)。任何示例或工作代码?

我需要这个来预审内容。例如,如果用户更改了模型中的某些内容,则管理员可以在单独的表中查看所有更改,然后决定是否应用它们。

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您还没有对您的特定用例或需求说太多。特别是,了解更改信息(需要存储多长时间?)将很有帮助。如果仅出于临时目的而存储它,@
    S.Lott的会话解决方案可能是最好的。如果要对存储在数据库中的对象的所有更改进行完整的审核跟踪,请尝试使用此AuditTrail解决方案

    更新
    :我上面链接到的AuditTrail代码是最接近适合您的情况的完整解决方案的代码,尽管它有一些限制(对于ManyToMany字段根本不起作用)。它将对象的所有先前版本存储在数据库中,因此管理员可以回滚到任何先前版本。如果您希望更改在获得批准之前不生效,则需要使用它。

    您还可以基于@Armin
    Ronacher的DiffingMixin之类的内容来构建自定义解决方案。您将diff字典(可能是腌制的?)存储在表格中,以便管理员稍后查看并根据需要应用(您需要编写代码以获取diff字典并将其应用于实例)。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看