Je reçois des champs order_by sous la forme d'une liste. Je veux order_by par plusieurs champs avec Django orm. La liste est comme ci-dessous:
orderbyList = ['check-in','check-out','location']
J'écris une requête est comme:
modelclassinstance.objects.all().order_by(*orderbyList)
Tout ce que j'attends dans une liste est dynamique. Je n'ai pas de jeu de données prédéfini. Est-ce que certains pourraient me dire comment écrire un ORM Django avec cela?
Essayez quelque chose comme ça
modelclassinstance.objects.order_by('check-in', 'check-out', 'location')
Vous n'avez pas besoin de .all()
pour cela
Vous pouvez également définir l'ordre dans votre classe de modèle
quelque chose comme
class Meta:
ordering = ['check-in', 'check-out', 'location']
Essaye ça:
listOfInstance = modelclassinstance.objects.all()
for askedOrder in orderbyList:
listOfInstance = listOfInstance.order_by(askedOrder)