Django obtenir un QuerySet depuis le tableau de id dans un ordre spécifique
heres un rapide pour vous:
J'ai une liste d'id de qui je veux utiliser pour renvoyer un QuerySet(ou d'une matrice, en cas de besoin), mais je tiens à maintenir l'ordre.
Grâce
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que vous pouvez appliquer cette commande précise sur le niveau de base de données, alors vous devez le faire en python à la place.
Ce construit un dictionnaire des objets avec leur id comme clé, de sorte qu'ils peuvent être facilement récupérés lors de la construction de la liste triée.
Depuis Django 1.8, vous pouvez le faire:
Case
When
sont sous-estimés!distinct()
avec order_by cas lorsque la clause, mais il a obtenu l'erreur. tout soutien, s'il vous plaît.SELECT DISTINCT ON expressions must match initial ORDER BY expressions
- voici le message d'erreurPaginator
, donc ne souhaitez pas que tous les résultats de l'extraction)?Si vous voulez faire cela à l'aide de in_bulk, vous avez réellement besoin de fusionner les deux réponses ci-dessus:
Sinon le résultat sera un dictionnaire plutôt que sur un ordre exprès de la liste.
Voici un moyen de le faire au niveau base de données. Copier coller à partir de: blog.mathieu-leplatre.info
:
MySQL:
Même avec Django:
PostgreSQL:
Même avec Django: