2012-04-07 57 views
2

是否可以使用爲SQL語句與Django的ORM:「選擇字段作爲X ...」 Django的ORM

SELECT my_field AS something_shiny WHERE my_condition = 1

如果可能的話又如何?

+1

的可能重複[Django的:如何寫查詢集別名】(http://stackoverflow.com/questions/6833843/django-how在查詢集中寫入別名) - 查看我對該問題的回答;我提出了一個將此行爲添加到'values'的補丁。 – Nate 2012-04-07 15:08:55

回答

3

使用extra()

Foo.objects.filter(cond=1).extra(select={'sth_shiny':'my_field'}) 

然後,你可以訪問sth_shiny attr的

5

導致富實例現在Django的文件說,一要use extra as a last resort

因此,這裏是一個更好的方式來做到這一點查詢:

from django.db.models import F 
Foo.objects.filter(cond=1).annotate(sth_shiny=F('my_field'))