相关疑难解决方法(0)

Django比较模型实例的相等性

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

spam == eggs
Run Code Online (Sandbox Code Playgroud)

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

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

spam.pk == eggs.pk
Run Code Online (Sandbox Code Playgroud)

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

更新(02-27-2015)

你应该忽略这个问题的第一部分,因为你不应该将单身人士与之比较==,而是与之比较is.单身者真的与这个问题无关.

django django-models

38
推荐指数
4
解决办法
3万
查看次数

标签 统计

django ×1

django-models ×1