Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
Django 未引用排名高于子查询/参数的原始查询 我的目标_Django_Django Orm - Fatal编程技术网

Django 未引用排名高于子查询/参数的原始查询 我的目标

Django 未引用排名高于子查询/参数的原始查询 我的目标,django,django-orm,Django,Django Orm,我需要将PostgreSQL的秩窗口函数应用于Django的ORM中带注释的查询集。Django的sql查询必须是子查询才能应用窗口函数,这就是我目前正在做的: queryset=Item.objects.Annotation… queryset_,_排名=Items.objects.raw 选择按点数排序* 从%subquerys,{'subquery':queryset.query} 问题 遗憾的是,queryset.query返回的查询没有正确引用用于注释的参数,尽管查询本身执行得非常好

我需要将PostgreSQL的秩窗口函数应用于Django的ORM中带注释的查询集。Django的sql查询必须是子查询才能应用窗口函数,这就是我目前正在做的:

queryset=Item.objects.Annotation… queryset_,_排名=Items.objects.raw 选择按点数排序* 从%subquerys,{'subquery':queryset.query} 问题 遗憾的是,queryset.query返回的查询没有正确引用用于注释的参数,尽管查询本身执行得非常好

返回的查询示例 queryset_与_rank.query或queryset.query返回的查询返回以下内容

"participation"."category" = )
"participation"."category" = amateur)
这是我很期待的

"participation"."category" = '')
"participation"."category" = 'amateur')
问题 我注意到Django文档说明了以下关于查询的内容__

参数值不一定要正确引用,因为这是由数据库接口在执行时完成的

只要我手动修改报价并将其传递给Postgres本人,一切都会按预期进行。有没有一种方法可以接收带有正确报价的所需子查询?或者有没有其他更好的方法将窗口函数应用于Django ORM queryset altoghether

作为Django核心开发人员,无法事先获得数据库后端执行的确切查询

我仍然按照我希望的方式构建了查询,尽管有点麻烦:

分别获取查询和参数 query,params=item_queryset.query.sql_和_params 在字符串周围加上引号。我猜这是什么 数据库适配器也可以。 参数=[ '\'{}\.formatp 如果isinstancep,则基串else p 参数中的p ] 将参数列表强制转换为元组,因为我 否则没有足够的格式字符。不知道为什么。 参数=元组参数 参与者=Item.objects.raw 选择*, 按点按顺序排列描述为秩 来自{subquery} .formatsubquery=query.formatparams,[] 作为Django核心开发人员,无法事先获得数据库后端执行的确切查询

我仍然按照我希望的方式构建了查询,尽管有点麻烦:

分别获取查询和参数 query,params=item_queryset.query.sql_和_params 在字符串周围加上引号。我猜这是什么 数据库适配器也可以。 参数=[ '\'{}\.formatp 如果isinstancep,则基串else p 参数中的p ] 将参数列表强制转换为元组,因为我 否则没有足够的格式字符。不知道为什么。 参数=元组参数 参与者=Item.objects.raw 选择*, 按点按顺序排列描述为秩 来自{subquery} .formatsubquery=query.formatparams,[] 这可能有助于*子查询上basedo类中的自定义模板这可能有助于*子查询上basedo类中的自定义模板