上一篇內容:odoo基礎視圖入門學習 - from視圖的使用
前言
前面學習了tree視圖和from視圖的使用,思考一個問題,我們如果想要時間在搜索框搜索我們想要的內容的時候怎么辦了,odoo這里也給了我們非常好的解決方式,那就是search視圖,search視圖的實現也是非常簡單的
search視圖 - 搜索框實現
還是進入views文件夾下的goods.xml文件,有問題的小伙伴可以去看下面兩篇視圖入門文章
<record id="goods_search_view" model="ir.ui.view">
<field name="name">型號搜索</field>
<field name="model">fandx.goods.spu</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="brand_id"/>
<field name="code"/>
<field name="create_date"/>
</search>
</field>
</record>
<record id="goods_view_form" model="ir.ui.view">
...
可以看到搜索的效果還是非常強大的
注意:
- search視圖不需要在act_windows的view_mode中進行添加會自動識別
- search視圖的內容需要被search標簽進行包含
search視圖 - 篩選功能
篩選功能可以快速幫助我們搜索我們預先設置好的搜索詞,比如我們這里設置篩選關鍵詞為蘋果品牌和小米品牌
還是在goods.xml的search標簽中進行文件進行修改
<record id="goods_search_view" model="ir.ui.view">
<field name="name">型號搜索</field>
<field name="model">fandx.goods.spu</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="brand_id"/>
<field name="code"/>
<field name="create_date"/>
<!-- 篩選功能 -->
<filter name="蘋果品牌" string="蘋果品牌" domain="[('brand_id', '=', '蘋果')]" />
<filter name="蘋果品牌" string="小米品牌" domain="[('brand_id', '=', '小米')]" />
<!-- 篩選功能 -->
</search>
</field>
</record>
當我們點擊蘋果品牌就會只過濾出蘋果的商品,小米的也是同理
注意:
- domain就是點擊這個篩選之后的頁面過濾的規則
- filter標簽就是用來編寫篩選框按鈕的內容的
- 我們也可以使用添加自定義篩選自由的進行內容的篩選
search視圖 - 分組功能
odoo的分組功能會根據某種規則進行group_by並進行分層顯示
還是在goods.xml的search標簽中進行文件的修改
<record id="goods_search_view" model="ir.ui.view">
<field name="name">型號搜索</field>
<field name="model">fandx.goods.spu</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="brand_id"/>
<field name="code"/>
<field name="create_date"/>
<filter name="蘋果品牌" string="蘋果品牌" domain="[('brand_id', '=', '蘋果')]" />
<filter name="蘋果品牌" string="小米品牌" domain="[('brand_id', '=', '小米')]" />
<!-- 分組功能 -->
<group>
<filter name="品牌分組" string="品牌" context="{'group_by':'brand_id'}"/>
</group>
<!-- 分組功能 -->
</search>
</field>
</record>
總結
odoo在search視圖中可以幫助我們實現對視圖快速搜索,配合着context還可以有一些search的高級用法,以后有機會再講