You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Many2One字段自动建议记录的数量限制?

解决Odoo Many2One字段下拉显示数量限制问题

针对sale.order.line模型中product_id字段下拉仅显示7条匹配记录的问题,别去改前端JS了——后端才是限制的源头,以下几种靠谱的解决方法:

方法一:直接在视图中设置字段显示限制

找到销售订单行的对应视图(如sale_order_line_form),给product_id字段添加limit属性,指定你想要的显示数量:

<field name="product_id" limit="20"/>

这种方式最快捷,只影响当前视图的该字段,无需修改业务逻辑代码。

方法二:通过模型继承修改字段上下文

如果需要全局生效,或者要结合其他上下文逻辑,可以继承sale.order.line模型,给product_id字段的上下文添加limit参数:

from odoo import models, fields

class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'

    product_id = fields.Many2one(
        'product.product',
        string='Product',
        domain=[('sale_ok', '=', True)],
        context={'search_default_sale_ok': 1, 'limit': 20}
    )

这里的limit参数会覆盖Odoo默认的7条限制,后端搜索时会返回对应数量的记录。

为什么修改前端JS没生效?

Odoo的Many2One下拉列表的记录是后端接口返回的,默认情况下后端最多返回7条匹配记录。前端组件只是渲染后端返回的数据,就算改了前端的显示逻辑,后端没返回更多记录也没用。所以优先从后端或视图层面调整限制。

内容的提问来源于stack exchange,提问作者holydragon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:10:09