2016-04-12 2 views
8

Я получаю поля order_by в виде списка. Я хочу order_by несколькими полями с django orm. Список, как показано ниже:Django: Order_by несколько полей

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

Я пишу запрос, как:

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

Все, что я ожидал в списке является динамическим. У меня нет предустановленного набора данных. Может ли кто-нибудь сказать мне, как написать ORJ django с этим?

ответ

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

Try это:

listOfInstance = modelclassinstance.objects.all() 

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

modelclassinstance.objects.order_by (* orderbyList) - лучший способ заказать_by –

Смежные вопросы