-
请大佬们帮忙看一下,在odoo13销售页面搜索产品字段,搜索结果不全,而且根据不同字段排序,出来的搜索结果数量还不一样?但是其他页面的搜索结果就没这问题。
两种搜索方式搜索出来的结果数量完全不一样


-
这是一个ORM的bug,本质上是ORM在search
sale_order的时候join了sale_order和sale_order_line, 由于一行sale_order可以对应多行sale_order_line,使得返回的(LIMIT 80)条数据中有重复的sale_order.id. 而最后到返回到前端的不同的sale_order数量小于80 (比如79)然后前端就以为最多只能搜到79条数据就没有向后端询问总数。 所以显示1-79/79这个问题在后续的ORM重构中应该已经解决。不过考虑到13.0马上就不支持了,所以除了升级也没啥好方法。
-
请大佬们帮忙看一下,在odoo13销售页面搜索产品字段,搜索结果不全,而且根据不同字段排序,出来的搜索结果数量还不一样?但是其他页面的搜索结果就没这问题。
两种搜索方式搜索出来的结果数量完全不一样


@zhang-wei918 第一张图用自定义筛选出来2000多条结果是对的,第二张图用默认搜索产品才74条,结果数量少太多了。
-
请大佬们帮忙看一下,在odoo13销售页面搜索产品字段,搜索结果不全,而且根据不同字段排序,出来的搜索结果数量还不一样?但是其他页面的搜索结果就没这问题。
两种搜索方式搜索出来的结果数量完全不一样



不同排序,出来的结果数量也不同 -

不同排序,出来的结果数量也不同@zhang-wei918
github上有人提过类似的问题:
https://github.com/odoo/odoo/issues/96490 -

不同排序,出来的结果数量也不同@zhang-wei918 无法排除是因为你的系统中的定制的部分影响到了搜索的结果。
你可以在http://runbot.odoo.com中选择V13来测试,如果能还原你的问题,那就是Odoo的bug
-
@zhang-wei918 无法排除是因为你的系统中的定制的部分影响到了搜索的结果。
你可以在http://runbot.odoo.com中选择V13来测试,如果能还原你的问题,那就是Odoo的bug
@digitalsatori 在 求助,odoo13销售页面搜索产品字段 中说:
@zhang-wei918 无法排除是因为你的系统中的定制的部分影响到了搜索的结果。
你可以在http://runbot.odoo.com中选择V13来测试,如果能还原你的问题,那就是Odoo的bug
谢谢回复,
测试环境,更新到最新的odoo13,更新base,卸载所有第三方模块,问题依旧,搜索 英文,中文,数字,筛选结果均不完整(均是7x 小于80),按订单号重新排序后会列出应该是正确的结果(3xxx,实际是2xxx)。
runbot 上只有4x条销售数据,暂时没还原问题,试着把销售数据增加到80条以上 排下序 问题就能重现了(导出了20条数据,复制成80条,导入几次,销售订单条目就增加了,附上数据文件 sale.order.rar ,重现问题的截图:

采购订单 就没这个问题。
-
@digitalsatori 在 求助,odoo13销售页面搜索产品字段 中说:
@zhang-wei918 无法排除是因为你的系统中的定制的部分影响到了搜索的结果。
你可以在http://runbot.odoo.com中选择V13来测试,如果能还原你的问题,那就是Odoo的bug
谢谢回复,
测试环境,更新到最新的odoo13,更新base,卸载所有第三方模块,问题依旧,搜索 英文,中文,数字,筛选结果均不完整(均是7x 小于80),按订单号重新排序后会列出应该是正确的结果(3xxx,实际是2xxx)。
runbot 上只有4x条销售数据,暂时没还原问题,试着把销售数据增加到80条以上 排下序 问题就能重现了(导出了20条数据,复制成80条,导入几次,销售订单条目就增加了,附上数据文件 sale.order.rar ,重现问题的截图:

采购订单 就没这个问题。
这估计跟产品上的
name_search有关。name_search有一个100的默认limit限制。在正反向排序中获得的这100个产品不同,用它们来过滤订单可能就带来不一样的结果。这仅仅是我的猜测。如果上面的猜测是正确的,那么这个"bug"发生的场景是:
用来搜索产品的字符串,可以返回的产品的数量超过100个。比如你在上面的测试里,用字母'a'来搜索产品,这个搜索结果应该会超过100个。
你可以继续如下尝试,用一个字符串搜索产品,确保搜索出来的产品会在100以内。然后用这个字符串搜索在销售订单的产品字段上,然后再做排序处理,看看是否还会出现:排序不同搜索结果不同的现象。
-
这是一个ORM的bug,本质上是ORM在search
sale_order的时候join了sale_order和sale_order_line, 由于一行sale_order可以对应多行sale_order_line,使得返回的(LIMIT 80)条数据中有重复的sale_order.id. 而最后到返回到前端的不同的sale_order数量小于80 (比如79)然后前端就以为最多只能搜到79条数据就没有向后端询问总数。 所以显示1-79/79这个问题在后续的ORM重构中应该已经解决。不过考虑到13.0马上就不支持了,所以除了升级也没啥好方法。
-
这是一个ORM的bug,本质上是ORM在search
sale_order的时候join了sale_order和sale_order_line, 由于一行sale_order可以对应多行sale_order_line,使得返回的(LIMIT 80)条数据中有重复的sale_order.id. 而最后到返回到前端的不同的sale_order数量小于80 (比如79)然后前端就以为最多只能搜到79条数据就没有向后端询问总数。 所以显示1-79/79这个问题在后续的ORM重构中应该已经解决。不过考虑到13.0马上就不支持了,所以除了升级也没啥好方法。
@hydrionburst
修正一下
是后端代码拿到79个数据以后认为总数小于80,就不再继续COUNT了 -
D digitalsatori 将这个主题转为问答主题,在
-
D digitalsatori 将这个主题标记为已解决,在
-
D digitalsatori 于 将此主题从 服装制衣 移至此处
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login