Odoo 16中res.partner列表视图按客户名称排序的问题咨询
客户列表按名称排序解决方案(Odoo 16)
核心结论
Odoo 16完全支持客户(res.partner)列表按名称字段进行升序/降序排序,name作为模型的核心字段,默认具备排序能力。你遇到的无法排序问题,大概率是视图配置异常导致,无需额外创建排序字段,调整视图设置即可解决。
问题排查与解决步骤
1. 检查列表视图中名称字段的可排序属性
默认情况下,res.partner的列表视图中name字段是可排序的,但如果视图被修改(自定义模块或手动编辑),可能被设置为不可排序:
- 激活开发者模式(右上角头像 → 激活开发者模式)
- 进入设置 > 技术 > 用户界面 > 视图
- 搜索模型为
res.partner、视图类型为list的视图记录,打开对应视图编辑XML代码 - 确保
name字段的定义没有sortable="False"属性,正确写法示例:
如果存在<field name="name" string="名称" />sortable="False",删除该属性或改为sortable="True",保存后刷新页面即可。
2. 处理自定义视图覆盖问题
如果你的系统使用了自定义模块扩展客户列表视图,需确保扩展逻辑未破坏name字段的可排序性:
- 打开自定义模块的视图XML文件,检查对
res.partner列表视图的继承代码 - 若需要强制设置可排序,可通过属性修改实现:
<record id="view_res_partner_list_custom" model="ir.ui.view"> <field name="name">res.partner.list.custom</field> <field name="model">res.partner</field> <field name="inherit_id" ref="base.view_partner_tree"/> <field name="arch" type="xml"> <field name="name" position="attributes"> <attribute name="sortable">True</attribute> </field> </field> </record> - 更新模块并升级后,刷新页面测试排序功能。
特殊情况说明
如果你的系统使用了自定义显示名称逻辑(比如通过计算字段拼接其他信息作为显示名称),则需要确保该计算字段被设置为可排序(在字段定义中添加store=True或设置sort=True),但这种场景属于定制需求,默认name字段无需额外处理。
内容的提问来源于stack exchange,提问作者holthaum
相关产品推荐
相关产品推荐

