django queryset有什么问题?访问同一个问题时,我会得到不同的答案

时间:2018-02-24 17:08:23

标签: django django-models django-queryset

我发现对象可能在查询集中重复。但是,当我尝试访问每个对象并且什么都不做时,它会发生变化并且看起来是正确的 Here are the commands I have typed into the shell

首先,我获得了字段'receiveTime'的查询集顺序。然后似乎ds[1996]等于ds[1997]。我尝试使用循环:

for d in ds:
    pass

然后ds[1996]不等于ds[1997],但我做了什么?

也许这是懒惰搜索的一个特征?

加1:我刚刚复制了它。我刚才没有插入或删除 These are the commands I just typed into the shell.

加2:我在调用图片2中显示的ds[0]ds[1]时看到了原始的sql查询.sql查询是正确的,但答案似乎是错误的。我想也许原因是两个对象的排序参数receiveTime是相同的,这导致了对象的混乱?
Here are the raw sql queries

1 个答案:

答案 0 :(得分:0)

  1. order_by("receive_time")替换为order_by("receive_time", "id")。 PostgreSQL uses qsort这是一种不稳定的排序。仅给出receive_time,如果值相同,则无法保证订单。

  2. Don't post code or logs in images。如初。