Django queryset为同一个元素返回不同的值

时间:2015-06-01 17:19:51

标签: python django django-queryset

我很困惑......如果我要查询一个非常简单的模型,这就是我得到的:

python manage.py shell
In [1]: from tm_repository.models import TMTable
In [2]: a=TMTable.objects.filter(sourceVC__contains='this activates the function for stating the access level of the input')
In [3]: a.count()
Out[3]: 8
In [4]: a[7].sourceVC
Out[4]: u'Select {1}{2}2{3}{4}; this activates the function for stating the access level of the input line in question, {5}Change Line Level [0-7]{6} appears on the display.'
In [5]: a[7].sourceVC
Out[5]: u'this activates the function for stating the access level of the input line in question, Change Line Level [0-7] appears on the display.'

对象改变了!我的意思是,发生了什么?据我所知,python中的列表是持久的并且阅读django文档我没有找到任何可以证明这种奇怪行为的东西......

我做错了什么?

1 个答案:

答案 0 :(得分:0)

默认情况下,SQL查询没有排序。数据库已从不同的结果排序中返回了不同的实例。将order_by添加到查询中,您将获得相同的实例(只要没有并发编辑)。