使用Django ORM“SELECT field as x ...”

时间:2012-04-07 15:02:28

标签: django orm

是否可以在Django ORM中使用AS sql语句:

SELECT my_field AS something_shiny WHERE my_condition = 1

如果有可能那么?

2 个答案:

答案 0 :(得分:11)

到目前为止,Django文档说应该use extra as a last resort

所以这是进行此查询的更好方法:

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

答案 1 :(得分:3)

使用extra()

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

然后您可以访问生成的Foo实例的sth_shiny attr