2014-12-25 35 views
0

我對django一般很陌生,並且一直在使用QuerySet文檔。但是,有一個問題似乎讓我有些困惑。因此,舉例來說,我做的: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] 

肯定是數據庫表的行條目?即var1,var2var3維持他們的訂單?我嘗試了幾個例子,看起來確實如此,但我只是想確定一下。

希望問題很清楚!

回答

1

是的,排序將始終與您創建的底層objects查詢集中的排序相同。

+1

謝謝你 - 這將是堅果,如果它沒有 - 但我想當然:)再次感謝 - 接受你的答案。快樂聖誕btw! – AJW

1

values_list沒有觸及訂單,它只是返回列表中給定的字段值。這將與您在此模型上檢索另一個字段時的原始順序相同。只是不同的數據,就是這樣。

順便說一句,

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

相同

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

只是作爲一個旁註;)

+1

感謝您的支持! :) – AJW

+0

@AJW你的歡迎和快樂聖誕:) – doniyor

+0

你也是 - 快樂的聖誕節! :) – AJW