web-dev-qa-db-fra.com

Comment limiter les colonnes retournées par la requête Django?

Cela semble assez simple, mais toutes les requêtes Django semblent être "SELECT *"

Comment créer une requête renvoyant uniquement un sous-ensemble de champs?

58
philgo20

Dans Django 1.1 en avant, vous pouvez utiliser defer('col1', 'col2') pour exclure des colonnes de la requête, ou only('col1', 'col2') pour obtenir seulement un ensemble spécifique de colonnes. Voir - la documentation .

values fait quelque chose de légèrement différent - il n'obtient que les colonnes que vous spécifiez, mais il renvoie une liste de dictionnaires plutôt qu'un ensemble d'instances de modèle.

73
Daniel Roseman

Ajoutez une .values("column1", "column2", ...) à votre requête

28
Ian Clelland