gpt4 book ai didi

python - 使用 'or' 合并查询集时,两侧不能有 extra(select=...)

转载 作者:行者123 更新时间:2023-12-01 05:30:25 26 4
gpt4 key购买 nike

我认为这是一个简单直接的问题,我有两个查询集,我将它们合并为一个。但发生了这个错误。

When merging querysets using 'or', you cannot have extra(select=...) on both sides.

代码:

projects = pending_or_onhold | pending_by_manager

回溯

Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 115, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "C:\Python27\lib\site-packages\django\contrib\auth\decorators.py", line 25, in _wrapped_view
return view_func(request, *args, **kwargs)
File "D:/Pythonapps/ifscoatings\ifs_request_system\decorators.py", line 20, in inner
return view(request, *args, **kwargs)
File "D:/Pythonapps/ifscoatings\request_system\views.py", line 493, in dashboard
return render_to_response('dashboard.html', context_instance=RequestContext(request, ctx))
File "C:\Python27\lib\site-packages\django\shortcuts\__init__.py", line 29, in render_to_response
return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "C:\Python27\lib\site-packages\django\template\loader.py", line 177, in render_to_string
return t.render(context_instance)
File "C:\Python27\lib\site-packages\django\template\base.py", line 140, in render
return self._render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 134, in _render
return self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 830, in render
bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py", line 74, in render_node
return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py", line 124, in render
return compiled_parent._render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 134, in _render
return self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 830, in render
bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py", line 74, in render_node
return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 830, in render
bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py", line 74, in render_node
return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py", line 483, in render
output = self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 830, in render
bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py", line 74, in render_node
return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py", line 284, in render
return nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 830, in render
bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py", line 74, in render_node
return node.render(context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py", line 156, in render
return self.render_template(self.template, context)
File "C:\Python27\lib\site-packages\django\template\loader_tags.py", line 138, in render_template
output = template.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 140, in render
return self._render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 134, in _render
return self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 830, in render
bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py", line 74, in render_node
return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py", line 483, in render
output = self.nodelist.render(context)
File "C:\Python27\lib\site-packages\django\template\base.py", line 830, in render
bit = self.render_node(node, context)
File "C:\Python27\lib\site-packages\django\template\debug.py", line 74, in render_node
return node.render(context)
File "C:\Python27\lib\site-packages\django\template\defaulttags.py", line 481, in render
six.iteritems(self.extra_context)])
File "C:\Python27\lib\site-packages\django\template\base.py", line 606, in resolve
new_obj = func(obj, *arg_vals)
File "D:/Pythonapps/ifscoatings\request_system\templatetags\template_filters.py", line 54, in filter_project
projects = safe_projects(project_list=_callable(MyDashboard(request=request)), request=request, filter_market=True)
File "D:/Pythonapps/ifscoatings\request_system\lib.py", line 73, in chemist_pending_work
projects = pending_or_onhold | pending_by_manager
File "C:\Python27\lib\site-packages\django\db\models\query.py", line 234, in __or__
combined.query.combine(other.query, sql.OR)
File "C:\Python27\lib\site-packages\django\db\models\sql\query.py", line 544, in combine
raise ValueError("When merging querysets using 'or', you "
ValueError: When merging querysets using 'or', you cannot have extra(select=...) on both sides.
[05/Dec/2013 17:37:05] "GET /dashboard/ HTTP/1.1" 500 655503

这是选择的 Exta,它正在创建我不能拥有的错误。这是发现的新错误。我只想合并两个查询集。

.....filter().extra(
select={"priority": "COALESCE(bm_rank, sales_rank, id)", "size": "order_size_price*order_size_weight"})

最佳答案

请仔细阅读您发布的错误消息。 Django 不支持使用额外的 select 合并计算的 QuerySet(两者)。

我还没有看到你的其余代码,或者更多的代码,让我可以描绘出你正在工作的上下文。

我建议您使用一些自定义生成器。然后再试一次。

您还可以尝试使用原始 SQL。

关于python - 使用 'or' 合并查询集时,两侧不能有 extra(select=...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20400344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com