django queryset - 相应的排序

时间:2014-12-25 19:51:49

标签: django django-models

我对django很新,并且一直在查看QuerySet文档。但是,有一个问题似乎让我有点烦恼。所以,例如,我这样做:

objects = MyModel.objects.all().filter(some_field = false)

然后,我执行以下操作:

var1 = objects.values_list('pk', flat=True)
var2= objects.values_list('field2', flat=True)
var3= objects.values_list('field3', flat=True)

我的问题是 - var1var2var3是否保持相同的相应订单?所以:

var1[0], var2[0], var3[0]

绝对是数据库表的行条目?即var1var2var3维持他们的命令?我确实尝试了几个例子,看起来确实如此,但我只想确定。

希望问题很清楚!

2 个答案:

答案 0 :(得分:1)

是的,排序将始终与您创建的基础objects查询集中的排序相同。

答案 1 :(得分:1)

values_list不接触订单,只返回列表中的给定字段值。这将与您在此模型上检索另一个字段时具有相同的原始顺序。只是不同的数据,就是这样。

顺便说一下,

objects = MyModel.objects.all().filter(some_field = false)

相同
objects = MyModel.objects.filter(some_field = false)

正如旁注;)