2016-04-12 26 views
8

Otrzymuję pola order_by w formie listy. Chcę order_by przez wiele pól z django orm. Lista jest jak poniżej:Django: Order_by wielu pól

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

piszę zapytanie jest jak:

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

Wszystko Oczekuję na liście jest dynamiczna. Nie mam predifined zestaw danych.Czy niektóre powiedzieć mi, jak napisać ORM Django z tym?

Odpowiedz

22

Spróbuj coś takiego

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

Nie potrzeba .all() tego

Można również zdefiniować zamawiania w swojej klasie modelu

coś

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

Dzięki, mam to ... pochodzi z innego linku. modelclassinstance.objects.order_by (* orderbyList) – danny

2

Try to:

listOfInstance = modelclassinstance.objects.all() 

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

modelclassinstance.objects.order_by (* orderbyList) to lepszy sposób na order_by –

Powiązane problemy