odoo基礎視圖入門 - search視圖的使用

上一篇內容: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">
  ...

image

可以看到搜索的效果還是非常強大的

注意:

  • 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>

image

當我們點擊蘋果品牌就會只過濾出蘋果的商品,小米的也是同理

注意

  • 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>

image

總結

odoo在search視圖中可以幫助我們實現對視圖快速搜索,配合着context還可以有一些search的高級用法,以後有機會再講

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章