Django检查查询集是否相等

Tou*_*ami 2 django django-queryset

我有这个Django代码

q1 = MyModel.objects.all()
q2 = MyModel.objects.all()
Run Code Online (Sandbox Code Playgroud)

当我尝试

print q1 == q2
Run Code Online (Sandbox Code Playgroud)

我得到的结果

False
Run Code Online (Sandbox Code Playgroud)

那么,如何检查Django中两个查询集的结果是否相等?

MHB*_*MHB 12

您可以将其转换为 set,以检查 2 个查询集是否具有相同的元素,而不考虑顺序:

set(q1) == set(q2)
Run Code Online (Sandbox Code Playgroud)

它将返回:

True
Run Code Online (Sandbox Code Playgroud)


Ala*_*air 5

您可以将查询集转换为列表,并检查它们是否相等:

list(q1) == list(q2)
Run Code Online (Sandbox Code Playgroud)