我对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)
我的问题是 - var1
,var2
和var3
是否保持相同的相应订单?所以:
var1[0], var2[0], var3[0]
绝对是数据库表的行条目?即var1
,var2
和var3
维持他们的命令?我确实尝试了几个例子,看起来确实如此,但我只想确定。
希望问题很清楚!
答案 0 :(得分:1)
是的,排序将始终与您创建的基础objects
查询集中的排序相同。
答案 1 :(得分:1)
values_list
不接触订单,只返回列表中的给定字段值。这将与您在此模型上检索另一个字段时具有相同的原始顺序。只是不同的数据,就是这样。
顺便说一下,
objects = MyModel.objects.all().filter(some_field = false)
与
相同objects = MyModel.objects.filter(some_field = false)
正如旁注;)