gpt4 book ai didi

Django 比较模型实例是否相等

转载 作者:行者123 更新时间:2023-11-28 19:35:12 29 4
gpt4 key购买 nike

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

spam == eggs

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

这个问题是,如果对实例的引用具有已被中间件沿途某处更新的属性并且尚未保存,并且您正在尝试将其指向另一个持有对一个引用的变量相同模型的实例,它会返回 False 当然是因为它们的某些属性具有不同的值。显然,我不需要像 singleton 这样的东西。 ,但我想知道是否有一些官方的 Djangonic(ha,一个新词)方法来检查这个,或者我是否应该通过运行简单地检查 .pk 值是否相同:

spam.pk == eggs.pk

如果这浪费了大量时间,我很抱歉,但看起来可能有一种方法可以做到这一点,而且我缺少一些东西,如果我找不到它,我会后悔的.

更新 (02-27-2015)

您应该忽略这个问题的第一部分,因为您不应该将单例与 == 进行比较,而应该将其与 is 进行比较。单例真的与这个问题无关。

最佳答案

来自 Django documentation :

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

关于Django 比较模型实例是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513342/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com