Odoo16开发者求助:能否设置SearchPanel默认选中状态?
Odoo 16 SearchPanel 设置默认选中值实现方案
要实现SearchPanel默认选中指定值且保留所有可选选项的效果,有两种常用方案:
方案1:通过视图Action上下文直接配置
在目标模型的视图Action中,通过context参数添加search_panel_default_{字段名}配置,指定默认选中的值(值以列表形式传入)。
示例代码(XML视图定义):
<record id="action_your_model" model="ir.actions.act_window"> <field name="name">目标模型视图</field> <field name="res_model">your.model</field> <field name="view_mode">tree,form</field> <!-- 假设要默认选中state字段的'draft'选项 --> <field name="context">{'search_panel_default_state': ['draft']}</field> </record>
这种方式简单直接,无需编写额外的Python或JS代码,适合固定默认值的场景。
方案2:通过模型方法动态设置默认值
如果需要根据用户权限、当前环境等动态调整默认选中值,可以重写模型的get_search_panel_defaults方法,自定义返回默认选中配置。
示例代码(Python模型继承):
from odoo import models class YourModel(models.Model): _inherit = 'your.model' def get_search_panel_defaults(self): res = super().get_search_panel_defaults() # 动态设置state字段默认选中'draft',可根据条件调整值 res['state'] = ['draft'] return res
注意事项
- 两种方案都不会隐藏SearchPanel的其他可选选项,仅设置默认选中状态,完全符合你的需求。
- 替换示例中的
your.model和state、draft为你实际的模型名称、字段名和目标选项值即可。
内容的提问来源于stack exchange,提问作者Yeraly Kuatuly
相关产品推荐
相关产品推荐

