Django 中的脏字段

2024-04-13

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

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


我发现阿明的想法非常有用。这是我的变体;

class DirtyFieldsMixin(object):
    def __init__(self, *args, **kwargs):
        super(DirtyFieldsMixin, self).__init__(*args, **kwargs)
        self._original_state = self._as_dict()

    def _as_dict(self):
        return dict([(f.name, getattr(self, f.name)) for f in self._meta.local_fields if not f.rel])

    def get_dirty_fields(self):
        new_state = self._as_dict()
        return dict([(key, value) for key, value in self._original_state.iteritems() if value != new_state[key]])

编辑:顺便说一句,我已经测试过这个。

抱歉排了很长的队。区别在于(除了名称之外)它仅缓存本地非关系字段。换句话说,它不会缓存父模型的字段(如果存在)。

还有一件事;你需要重置_original_state保存后听写。但我不想覆盖save()方法,因为大多数时候我们在保存后丢弃模型实例。

def save(self, *args, **kwargs):
    super(Klass, self).save(*args, **kwargs)
    self._original_state = self._as_dict()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 中的脏字段 的相关文章

  • 如何从数据库模式自动生成示例 Django 应用程序?

    我正在评估概念验证应用程序的框架 该应用程序的生命周期约为 30 天 之后它将被遗忘或完全重写 我已确定要从现有数据库模式自动生成示例应用程序 然后调整视觉设计的某些方面 我看过一个演示红宝石 on Rails 它会为数据库中的每个表自动生
  • 如何在Python中检查UDF函数中pyspark数据帧列的单元格值为none或NaN以实现前向填充?

    我基本上是在尝试进行前向填充插补 下面是代码 df spark createDataFrame 1 1 None 1 2 5 1 3 None 1 4 None 1 5 10 1 6 None session timestamp id PR
  • matplotlib 的 pcolor 中的白线

    在某些 pdf 查看器 例如 OSX 上的 Preview 中 使用以下命令绘制的图matplotlib的 pcolor 有白线 见下图 我怎样才能摆脱它们 源代码非常简单 选择任何数据x y z import matplotlib mat
  • tkinter 上的“NoneType”对象没有属性“get”错误[重复]

    这个问题在这里已经有答案了 我最近开始使用 python 3 6 进行编码tkinter并尝试创建我自己的项目repl it 该项目是一个简单的交互式待办事项列表 但是我陷入困境并且无法使该功能正常工作 该函数只是简单地获取条目并将其添加到
  • 使用 OpenCV 进行图像模糊检测

    我正在研究图像的模糊检测 我已经用过拉普拉斯方法的方差在 OpenCV 中 img cv2 imread imgPath gray cv2 cvtColor img cv2 COLOR BGR2GRAY value cv2 Laplacia
  • gcloud app deploy:此部署有太多文件

    当我尝试通过 gcloud 部署我的 GAE 应用程序时 出现以下错误 Updating service default failed ERROR gcloud app deploy Error Response 400 This depl
  • 将元组列表转换为字符串 Python

    例如 我用 python 编写了一个返回列表的函数 1 1 2 2 3 3 但我希望输出为字符串 这样我就可以用另一个字符替换逗号 这样输出就是 1 1 2 2 3 3 有什么简单的方法可以解决这个问题吗 感谢您提前提供任何提示 这看起来像
  • Python中非常大的整数的math.pow是错误的[重复]

    这个问题在这里已经有答案了 我试图通过计算一个整数的非常大的幂来打印一个非常大的数字 尽管我的代码是正确的 但我没有观察到所需的输出 一般来说 Python解释器可以打印系统内存支持的非常大的整数 考虑到这个假设 下面是我正在运行的代码 a
  • 将Python嵌入到C中——导入模块

    我在使用嵌入式 Python for C 时遇到问题文档 http docs python org extending embedding html 每当我尝试使用导入的模块时 我都会得到 PythonIncl exe 中 0x1e089e
  • 如何在Python中重命名virtualenv?

    我拼错了名字virtualenv使用以下方法初始化它 virtualenv vnev 我实际上打算创建一个名为的环境venv 尝试重命名后vnev文件夹到venv 我发现这并没有提供太多帮助 激活环境的名称仍然重命名旧的vnev mv vn
  • 为什么Python 3中实例方法可以作为类方法调用?

    考虑下面的类 class Foo object def bar self print self 在Python 2中 2 7 13 调用bar 作为类方法引发异常 gt gt gt Foo bar hello Traceback most
  • Odoo:如何覆盖原始功能

    在 Odoo 中 每次打开产品表单时都会计算产品的数量 这发生在模型中product product gt function product available 该函数返回一个名为 res 的字典 Example res 8 qty ava
  • 并行磁盘 I/O

    我有几个想要阅读的日志文件 不失一般性 假设日志文件处理如下 def process infilepath answer 0 with open infilepath as infile for line in infile if line
  • 从 Cython 代码生成 SIMD 指令

    我需要概述在高性能数字代码中使用 Cython 可以获得的性能 我感兴趣的事情之一是找出优化的 C 编译器是否可以对 Cython 生成的代码进行矢量化 所以我决定写下面的小例子 import numpy as np cimport num
  • Django - 如何从中间件修改模板上下文

    我正在创建一个 Django 中间件 它通过会话管理 购物车 我能够成功修改会话数据 如下所示 class ShoppingCartMiddleware def init self get response self get respons
  • “gi.repository.Gtk”对象没有属性“gdk”

    我正在尝试使用 GTK 创建多线程 需要 Gtk gdk 但我收到有关没有 gdk 属性的错误 我正在使用带有 Raspbian 的 Raspberry Pi 这就是我导入 GTK 库的方式 try import pygtk pygtk r
  • 如何在Python中一次比较二维数组的2列与另一个数组的列

    我有两个字符串数组 每个数组有三列 我想比较两个二维数组的前两列 有 3 列和 4000 行 如果它们匹配 那么我需要那些匹配的值 但是我的代码不起作用 这是一个示例 array1 1stcolumn 2ndColumn 3rdColumn
  • 无法从源 pylance 解析导入烧瓶

    我正在学习 Python 课程的一部分是使用 Flask 设置网络服务器 我按照 Flask 安装文档执行了步骤 由于某种原因 flask 模块带有下划线 如下所示 当我将鼠标悬停时 我会得到如下附加信息 无法从源 pylance 解析导入
  • 打包布尔数组需要通过 int (numpy 1.8.2)

    我正在寻找更紧凑的方式来存储布尔值 numpy 内部需要 8 位来存储一个布尔值 但是np packbits允许打包 他们 这真是太酷了 问题是要打包在4e6字节数组a32e6字节我们需要首先使用的布尔值数组256e6字节将布尔数组转换为
  • Python,质数检查器[重复]

    这个问题在这里已经有答案了 你好 我正在创建一个函数来检查一个数字是否是素数 但它告诉我 9 是一个素数 def eprimo num if num lt 2 return False if num 2 return True else f

随机推荐

  • 带 margin-left 和 width:100% 右侧溢出的 Div

    我有 2 个嵌套的 div 宽度应为 100 不幸的是 带有文本框的内部 div 溢出 并且实际上比外部 div 更大 它有一个左边距 并且溢出了大约该边距的大小 我该如何解决这个问题 div style width 100 div sty
  • 使用 ctypes 从 python 调用 C 函数

    我有以下 C 代码 我正在尝试使用Python从Python调用这个函数ctypes int add int arr printf number d n arr 0 arr 0 1 return arr 0 我用以下方法编译了这个 gcc
  • 动态包含/排除 Gitlab Pipeline 中的作业

    我有一个有几个阶段的管道 detect test build deploy The detect阶段检测应用程序的类型和test and build阶段的作业根据计算结果包含或排除detect The detectstage 将其值写入名为
  • 如何在 webkit 浏览器中访问粘贴的文件? (如谷歌浏览器)

    如果能够在 Stack Exchange 上粘贴图像而不是干扰文件对话框 那将非常方便 类似的功能在这里实现了 是 但是仅适用于 Webkit 浏览器 https meta stackexchange com a 233874 209994
  • 快速获取剪贴板更改通知

    swift 中有剪贴板更改事件吗 当 iOS 应用程序中剪贴板发生更改时 我如何收到通知 谢谢 这里有一个可以复制的迅捷5 0 version NotificationCenter default addObserver self sele
  • 使用反应登录表单在 Spring Boot 中对用户进行身份验证

    我已将 spring security 添加到我的项目中 并且正在尝试进行用户身份验证 我正在使用 CrudRepository 来查找用户并验证详细信息是否正确 我已经能够使用开箱即用的弹簧登录页面让它工作 我的问题是我想通过我的反应登录
  • 如何实现带有可折叠搜索栏的 SliverAppBar

    这就是我想做的 https i stack imgur com f9SYe jpg 这是 iOS 上非常常见的 Widget 这是我的代码 return Scaffold backgroundColor Colors white body
  • 将 CMake 与具有钻石依赖项的库一起使用

    假设我有四个独立的项目 三是图书馆 Common Foo and Bar 其中之一是可执行文件 App Both Foo and Bar依赖于公共库 并且App依赖于取决于Foo and Bar 此外 其中一些项目有一些脚本需要运行来生成一
  • Linux - 嵌套中断[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux 是否使用嵌套中断 我的意思是 例如 当从任何设备提供中断服务时 可以允许在此例程中进一步中断吗 或者它涉及上半部和下半部 ED
  • '\b' 不会在 PyCharm 控制台中打印退格键

    我正在尝试更新 PyCharm 控制台中的最后一行 说吧 我打印a然后我想把它改成c 但是 我遇到了以下问题 当我跑步时 print a bc 它打印 a c 而所需的输出 这也是我在 Windows 控制台中看到的 是 c 有没有办法将光
  • 使用 istream::seekg 太贵了吗?

    在c 中 使用istream seekg操作的成本有多高 编辑 我可以通过查找文件和读取字节来逃脱多少惩罚 频率与偏移量的关系如何 我正在解析一个大文件 4GB 我想知道是否有必要尝试合并我的一些搜索调用 我认为文件位置差异的大小起着一定的
  • Oracle 中的子字符串索引

    我刚刚发现我们现在的数据库设计效率有点低SELECT我们执行最多的查询 IBAN 是根据国家特定格式的位置坐标 因为我们主要是表演JOINs and WHERE在某些表中 IBAN 列的精确子字符串上 我的问题是关于为列的子字符串分配索引
  • 如何关闭 Netty 库调试输出?

    我正在使用 Netty 通过 Ning async HTTPlibrary http www ning com code 2010 03 introducing nings asynchronous http client library
  • 使用自定义架构重定向到外部 URL

    我有 Asp net MVC4 项目 如果调用指定的操作 我想重定向到外部 url URL 应该有自定义架构 例如没有http but myschema 我知道要重定向到 google com 我可以使用return Redirect ht
  • CMake 目标取决于已安装的目标

    我已经搜索过这个 但也许我使用了错误的措辞 我希望在安装另一个目标后构建一个 CMake 目标 举一个具体的例子 我希望我的测试包含库版本并与其链接 其目录结构类似于实际安装 目录结构 project lib first library h
  • 在 Python 3.6+ 中按值对字典进行排序

    我一直在寻找一种用Python中的值对字典进行排序的方法 经过几次尝试 结果如下 a
  • 与 Derby 有其他连接(只读)

    我想要做什么 我的应用程序与 Derby DB 具有完整连接 并且我想并行地浏览数据库 只读 使用不同的工具 我不确定 Derby 在内部实际上是如何工作的 但我知道我只能有 1 个到 Derby DB 的活动连接 但是 由于数据库仅由硬盘
  • 仅包含 1 个数字的示例[重复]

    这个问题在这里已经有答案了 我正在尝试创建一些模拟数据 为了创建聚类数据 我已指定处方者是否在一个或多个本地卫生区域 LHA 工作 现在 我正在尝试根据患者的 LHA 为患者指定一名处方医生 其代码位于以下代码块中 for i in seq
  • 从 XML 创建实体

    我有以下 XML 结构
  • Django 中的脏字段

    在我的应用程序中 我需要在保存模型时保存更改的值 旧的和新的 有示例或工作代码吗 我需要这个来预先审核内容 例如 如果用户更改了模型中的某些内容 那么管理员可以在单独的表中查看所有更改 然后决定是否应用它们 我发现阿明的想法非常有用 这是我