实现odoo搜索框默认搜索条件
<record id="view_special_search" model="ir.ui.view">
<field name="name">special_drug_search</field>
<field name="model">special_drug</field>
<field name="arch" type="xml">
<search string="配送门店搜索">
<field name="store" string="配送门店"/>
<field name="tenantid" string="门店ID"/>
</search>
</field>
</record>
<record id="special_drug_action_window" model="ir.actions.act_window">
<field name="name">药品配送记录</field>
<field name="res_model">special_drug</field>
<field name="search_view_id" ref="view_special_search"/>
<field name="view_mode">tree</field>
</record>
第一个record,是有关搜索框的搜索条件,在search中,tenantid 和 store 两个字段都是model:special_drug中的字段
第二个record,是act_window,在这中间添加
<field name="search_view_id" ref="view_special_search"/>
为了找到第一个record中的search条件
最后看下效果,当输入某个值时,他会提示:
搜索配送门店为:XXX ,或者
搜索门店ID为:XXX
因为截图截不到上述搜索提示,这里展示最终选择结果,如下
距离目标还差一点,此时
<record id="special_drug_action_window" model="ir.actions.act_window">
<field name="name">药品配送记录</field>
<field name="res_model">special_drug</field>
<field name="context">{'search_default_tenantid': 1}</field>
<field name="search_view_id" ref="view_special_search"/>
<field name="view_mode">tree</field>
</record>
在act_window中添加context,search_default 是默认搜索,后面加的字段即是model中我们想要默认搜索并显示的内容,效果如下:
清除默认搜索条件
如果想清除默认搜索条件,只是注释掉context这一行是不行的,因为context已经将条件读入xml了,此时有两种处理方法
1.在ir_act_window表中找到{‘search_default_tenantid’: 1},并删除,变为{}
2.直接在context中清空,变为{},不可行,则参照第一条