【问题标题】:Collecting a list of fields that have been updated when django saves a model record收集 django 保存模型记录时已更新的字段列表
【发布时间】:2011-05-01 15:46:57
【问题描述】:

我正在创建一个“新增功能”部分,其中列出了最后一天的所有数据库更改。在最近的suggestion 中,我想使用 post_save 或 pre_save 来捕获 Django 保存模型记录时已更改的字段。我会将这些数据保存在另一个表中(带有时间戳)。我知道这是可能的,因为可以观察管理应用程序中的行为 - 它识别哪些字段已被更改)。

据我所知,管理应用程序使用了 forms.changed_data。但是使用 post_save 或 pre_save 不会收到任何表单信息。

有没有一种有效的方法来确定哪些字段已更改?我是否必须将模型中的每个字段与其当前值(pre_save)进行比较才能确定此列表?任何帮助(带有代码示例)将不胜感激。

【问题讨论】:

    标签: django


    【解决方案1】:

    有一个答案here。基本上,您可以在初始化对象时缓存您的字段,然后在post_save 信号中,您可以将每个字段与缓存的值进行比较......或者编写一个进行比较的方法,并且只返回已修改的字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 2020-11-20
      • 2012-12-23
      • 1970-01-01
      • 2011-05-17
      相关资源
      最近更新 更多