2016-04-12 75 views
8

我正在以列表的形式獲取order_by字段。 我想用django orm的多個字段來order_by。 名單是象下面這樣:Django:Order_by多個字段

orderbyList = ['check-in','check-out','location'] 

我寫一個查詢是這樣的:

modelclassinstance.objects.all().order_by(*orderbyList) 

我的所有列表中的預期是動態的。我沒有預先設定好的一組數據。有人能告訴我如何用這個寫一個django ORM嗎?

回答

22

嘗試是這樣的

modelclassinstance.objects.order_by('check-in', 'check-out', 'location') 

你不需要.all()

你也可以定義你的模型類

class Meta: 
     ordering = ['check-in', 'check-out', 'location'] 
+1

謝謝,我得到它..我從其他鏈接。 modelclassinstance.objects.order_by(* orderbyList) – danny

2

嘗試訂購這個:

listOfInstance = modelclassinstance.objects.all() 

for askedOrder in orderbyList: 
    listOfInstance = listOfInstance.order_by(askedOrder) 
+0

modelclassinstance.objects.order_by(* orderbyList)是更好的方式order_by –