2017-04-26 1 views
0

Regardez cette requête:Spécifiez l'expression sql comme nom de colonne dans une requête ORM django

select 'DEFAULT_STRING' as category from foo 

Ici, on n'a pas vraiment la colonne category dans le tableau, mais nous utilisons simplement une chaîne de caractères pour représenter cette valeur de colonne dans toutes les lignes renvoyées par la requête. Au lieu d'un littéral de chaîne, nous pourrions avoir une expression SQL valide ci-dessus. Y at-il un moyen d'avoir cette requête dans le ORM django?

Répondre

0

Une façon pratique de le faire est de annotate avec l'expression de requête RawSQL.

from django.db.models.expressions import RawSQL 
qset = Foo.objects.annotate(category=RawSQL("select 'DEFAULT_CATEGORY'",())) 

S'il vous plaît laissez-moi savoir dans les réponses s'il y a de meilleures façons de le faire.