Django 比较模型实例是否相等

2024-02-13

据我所知,在单例情况下,您可以执行以下操作:

spam == eggs

and if spam and eggs是具有所有相同属性值的同一类的实例,它将返回True。在 Django 模型中,这是很自然的,因为模型的两个单独实例永远不会相同,除非它们具有相同的.pk value.

这样做的问题是,如果对实例的引用具有已由中间件在途中某处更新的属性,并且尚未保存,并且您尝试将其引用到另一个包含对该实例的实例的引用的变量相同型号,会返回False当然,因为它们的某些属性具有不同的值。显然,我不需要类似的东西单例 https://stackoverflow.com/questions/31875/,但我想知道是否有一些官方的 Djangonic(哈,一个新词)方法来检查这一点,或者我是否应该简单地检查.pk值是相同的,通过运行:

spam.pk == eggs.pk

如果这是浪费时间,我很抱歉,但似乎可能有一种方法可以做到这一点,而且我错过了一些东西,如果我找不到它,我会后悔的。

更新(2015 年 2 月 27 日)

您应该忽略这个问题的第一部分,因为您不应该将单例与==,而是与is。单例确实与这个问题无关。


From Django 文档 https://docs.djangoproject.com/en/stable/topics/db/queries/#comparing-objects:

要比较两个模型实例,只需使用标准的 Python 比较运算符,即双等号:==。在幕后,比较两个模型的主键值。

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

Django 比较模型实例是否相等 的相关文章

随机推荐

  • Jenkins 库:java.lang.NullPointerException:无法在 null 对象上调用方法 xxx

    我正在使用声明性管道和单独的管道助手 在其中一个助手中我有文件vars getTriggerCause groovy with Checks for cause of the job trigger and returns respecti
  • 从 Prolog 中的列表构建复合谓词[重复]

    这个问题在这里已经有答案了 如果我在 Prolog 中有一个谓词列表 例如 flies swims 如何构建一个谓词 它是列表中所有谓词的合取 即fliesAndSwims X flies X swims X 或者 是否有一种更好的方法可以
  • 如何在 woocommerce 中按日期获取用户订单?

    我正在寻找一种标准方法来获取某个日期范围内或当月的用户订单总数 在探索 woocommerce 源代码之后 我得到的是 woo 正在使用这样的东西 order item amounts this gt get order report da
  • MSBuild - 比较 ItemGroups 元数据

    我正在尝试为我们的源树编写构建脚本 该树由 大量 解决方案组成 它们之间具有程序集引用 我创建了一个包含所有解决方案的 ItemGroup 并对该 ItemGroup 进行批处理以构建解决方案 我也需要复制some项目输出到 exes 输出
  • 为什么Java中的Object类包含受保护的方法?

    为什么对象类 https docs oracle com javase 7 docs api java lang Object htmlJava中包含受保护的方法 例如clone https docs oracle com javase 7
  • 从java项目中提取所有字符串

    我有相当多的源文件 我需要解析和提取所有字符串文字 并将它们作为播放旧的 java 常量放入文件中 例如 Label l new Label Cat 会成为 Label l new Label Constants CAT And in Co
  • Python 线程 stack_size 和段错误

    一个网络爬虫脚本最多产生 500 个线程 每个线程基本上请求远程服务器提供的某些数据 每个服务器的回复在内容和大小上都与其他服务器不同 我将线程的 stack size 设置为 756K threading stack size 756 1
  • 如何确定会话变量的内存占用量?

    另外 web config 请解释一下
  • isinstance 文件 python 2.7 和 3.5

    在 Python 2 7 中我得到以下结果 gt gt gt with open README md r as fin print isinstance fin file True 在 python 3 5 中我得到 gt gt gt wi
  • 如何为 Android 架构组件生命周期事件添加单元测试?

    我尝试为支持架构组件生命周期事件的函数添加单元测试 为了支持生命周期事件 我添加了 OnLifecycleEvent我的函数的注释 我想在该事件发生时执行某些操作 一切都按预期工作 但我想为该函数创建一个单元测试 以检查我的函数在预期事件发
  • 我需要让我的网站适合屏幕

    我已经将我的网站创建为固定布局 宽度为 1600px 但较小分辨率下的网页看起来太大了 我应该怎么做才能让它在每个分辨率下看起来都很好 感谢帮助 使用相对措施 例如width 100 您可以通过使用来进一步限制这一点min width an
  • Android:将彩色图像转换为灰度图像[重复]

    这个问题在这里已经有答案了 我正在尝试使用红色 绿色 蓝色的平均值将彩色图像转换为灰度图像 但它出现错误 这是我的代码 imgWidth myBitmap getWidth imgHeight myBitmap getHeight for
  • window.open target _self v window.location.href?

    我需要使用 JavaScript 重定向用户 哪种方法是首选方法 window open webpage htm self or window location href webpage htm 当然 第二种方法是首选 因为您没有另一个函数
  • 如何在 jQuery 中获取屏幕上可见的元素对象? [复制]

    这个问题在这里已经有答案了 我在 DOM 中有一个对象列表 它比屏幕高度区域长 我需要检测屏幕上的可见对象 只是为了制作类似时间线树视图的东西 如下图所示 我的 DOM 看起来像这样 div div Lorem ipsum div div
  • 如何在没有 MANIFEST.MF 的情况下运行 Java .jar?

    是否可以运行不包含的Java应用程序MANIFEST MF文件 当然还有静电main方法 只是缺少清单文件 并且该应用程序依赖于几个外部 jar files 如果这可能的话 该怎么做 您可以指定要从命令行运行的类 java cp yourJ
  • Numpy 数组切片返回切片数组和相应的数组索引

    我正在尝试从一个数组生成两个 numpy 数组 一个是原始数组的切片 另一个表示可用于查找生成的值的索引 我可以解释这一点的最好方法是通过示例 import numpy as np original np array 5 3 7 3 2 8
  • PostgreSQL:文本到 JSONB - 总大小超过最大值

    我已在文本字段中导入 JSON 数组 并希望将其转换为 JSONB 我收到以下错误 SQL错误 54000 错误 jsonb数组元素的总大小超过最大值268435455字节 错误 jsonb 数组元素的总大小超过最大值 268435455
  • 激活负颜色后图形奇怪地滑动

    我正在使用 Highcharts 在移动图表中显示一些实时变化的数据 每秒添加一个点 就像更新 highcharts 网站上的样条线示例 http www highcharts com demo dynamic update 为了清楚地看到
  • mysql 使用 unix_timestamp 变量进行分区

    鉴于这种 delimiter create procedure setup begin declare d datetime set d rounddate now create table s time req id int not nu
  • Django 比较模型实例是否相等

    据我所知 在单例情况下 您可以执行以下操作 spam eggs and if spam and eggs是具有所有相同属性值的同一类的实例 它将返回True 在 Django 模型中 这是很自然的 因为模型的两个单独实例永远不会相同 除非它