使用Django ORM"SELECT field as x ..."

aem*_*mdy 3 django orm

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

SELECT my_field AS something_shiny WHERE my_condition = 1

如果有可能那么如何?

Mic*_*ael 11

到目前为止,Django文档说应该使用extra作为最后的手段.

所以这是一个更好的方法来执行此查询:

from django.db.models import F
Foo.objects.filter(cond=1).annotate(sth_shiny=F('my_field'))
Run Code Online (Sandbox Code Playgroud)


okm*_*okm 5

使用额外的()

Foo.objects.filter(cond=1).extra(select={'sth_shiny':'my_field'})
Run Code Online (Sandbox Code Playgroud)

然后你可以访问sth_shiny结果 Foo 实例的 attr