2016-04-12 24 views
8

Bir liste biçiminde order_by alanları alıyorum. Ben django orm ile birden fazla alana göre order_by istiyorum. Liste aşağıda gibidir: i listede bekliyorumDjango: Order_by çoklu alanlar

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

Her şey dinamiktir: Ben bir sorgu yazıyorum

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

gibidir. Önceden belirlenmiş bir veri setim yok. Bazıları bana bununla bir django ORM yazmayı nasıl anlatabilir?

cevap

22

Sen Ayrıca, model sınıfına

şey

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

Teşekkür ederim, diğer bağlantılardan aldım. modelclassinstance.objects.order_by (* orderbyList) – danny

2

deneyin içinde sipariş tanımlayabilirsiniz bu

için .all() gerekmez bu

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

gibi bir şey deneyin bu:

listOfInstance = modelclassinstance.objects.all() 

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

modelclassinstance.objects.order_by (* orderbyList), order_by için daha iyi bir yoldur –