2009-11-16 166 views
0

在Django中,我有一個模型,並且我將有一個字典,其中包含該模型中的對象的id作爲鍵,並將權重作爲值。我想在order_by中使用這些權重:如何使用字典中的值對模型進行排序?

MyModel.objects.filter(title__icontains=query).order_by('value_from_the_dictionary') 

如何使此工作?

我不能在模型中放置權重,因爲它們在每次調用這個視圖時會有所不同,我不想將它們保存到任何地方,它們將在URL的每個查詢上計算。

回答

5

排序在order_by由數據庫完成,所以如果這些元素不在數據庫中,您不能通過它們進行排序。你必須得到查詢集,然後在Python中進行排序。

qs = MyModel.objects.filter(title__icontains=query) 
qs.sort(key=lambda x: mydict[x]) 
+0

+1爲了簡化和大量使用lambda :) – Bartek 2009-11-16 16:40:55

相關問題