Django 简单的Djanqo查询生成混乱的查询集结果

Django 简单的Djanqo查询生成混乱的查询集结果,django,django-queryset,Django,Django Queryset,[更新:软件版本Python 2.7.2,Django 1.3.1] 有人能解释一下这个控制台代码吗 FinishingStep有一个引用对象的ForeignKey,但这并不真正相关 >>> fins = FinishingStep.objects.filter(quote=jq) >>> fins [<FinishingStep: Tabbing>, <FinishingStep: Collator>] >>fins=Finishi

[更新:软件版本Python 2.7.2,Django 1.3.1]

有人能解释一下这个控制台代码吗

FinishingStep有一个引用对象的ForeignKey,但这并不真正相关

>>> fins = FinishingStep.objects.filter(quote=jq)
>>> fins
[<FinishingStep: Tabbing>, <FinishingStep: Collator>]
>>fins=FinishingStep.objects.filter(quote=jq)
>>>鳍
[, ]
到目前为止,我们已经返回了一个包含两个对象的QuerySet

但现在的困惑。两个对象现在看起来是相同的:

>>> fins[0]
<FinishingStep: Collator>
>>> fins[1]
<FinishingStep: Collator>
>>翅片[0]
>>>鳍[1]
将它转换为一个列表,这样可以修复它

>>> fins = list(fins)
>>> fins
[<FinishingStep: Tabbing>, <FinishingStep: Collator>]
>>> fins[0]
<FinishingStep: Tabbing>
>>> fins[1]
<FinishingStep: Collator>
>>翅片=列表(翅片)
>>>鳍
[, ]
>>>鳍[0]
>>>鳍[1]
[Update:将.distinct()添加到查询中也可以修复它。这尤其奇怪,因为目前数据库中只有这两项。]


这是虫子吗?我做错什么了吗?

这张票讨论了这种行为:

只需使用
order\u by
query即可。这是因为如果不指定显式排序,数据库引擎可以自由返回任何合适的行。所以我猜它只是从缓存中选取了一个