【发布时间】:2017-09-24 07:53:33
【问题描述】:
看看这个查询:
select 'DEFAULT_STRING' as category from foo
这里,我们在表中并没有真正的列category,但我们只是使用字符串文字来表示查询返回的所有行中的该列值。代替字符串文字,我们可以在上面使用任何有效的 SQL 表达式。有没有办法在 django ORM 中进行此查询?
【问题讨论】:
标签: python mysql django django-orm
看看这个查询:
select 'DEFAULT_STRING' as category from foo
这里,我们在表中并没有真正的列category,但我们只是使用字符串文字来表示查询返回的所有行中的该列值。代替字符串文字,我们可以在上面使用任何有效的 SQL 表达式。有没有办法在 django ORM 中进行此查询?
【问题讨论】:
标签: python mysql django django-orm
一个方便的方法是使用annotate 和RawSQL 查询表达式。
from django.db.models.expressions import RawSQL
qset = Foo.objects.annotate(category=RawSQL("select 'DEFAULT_CATEGORY'", ()))
如果有更好的方法,请在答案中告诉我。
【讨论】: