Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django orm查询中将sql表达式指定为列名_Python_Mysql_Django_Django Orm - Fatal编程技术网

Python 在django orm查询中将sql表达式指定为列名

Python 在django orm查询中将sql表达式指定为列名,python,mysql,django,django-orm,Python,Mysql,Django,Django Orm,看看这个查询: select 'DEFAULT_STRING' as category from foo 在这里,表中实际上没有列category,但我们只使用字符串文字在查询返回的所有行中表示该列值。我们可以使用上面任何有效的SQL表达式来代替字符串文本。有没有办法在django ORM中使用此查询?一种简便的方法是使用查询表达式注释 from django.db.models.expressions import RawSQL qset = Foo.objects.annotate(cat

看看这个查询:

select 'DEFAULT_STRING' as category from foo

在这里,表中实际上没有列
category
,但我们只使用字符串文字在查询返回的所有行中表示该列值。我们可以使用上面任何有效的SQL表达式来代替字符串文本。有没有办法在django ORM中使用此查询?

一种简便的方法是使用查询表达式
注释

from django.db.models.expressions import RawSQL
qset = Foo.objects.annotate(category=RawSQL("select 'DEFAULT_CATEGORY'", ()))
如果有更好的方法,请在答案中告诉我