• 笔记二:odoo搜索、筛选和分组


    一、搜索

    1、xml代码

    <!--搜索和筛选-->
            <record id="view_search_book_message" model="ir.ui.view">
                <field name="name">book_message</field>
                <field name="model">book_message</field>
                <field name="arch" type="xml">
                    <search>
                        <!--搜索-->
                        <field name="bookwarehouse"/>
                        <field name="location"/>
                    </search>
                </field>
            </record>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在act_window下添加search_view_id,

    		<record id="action_book_message" model="ir.actions.act_window">
              <field name="name">图书档案</field>
              <field name="res_model">book_message</field>
              <field name="search_view_id" ref="view_search_book_message"/>
              <!-- 默认分组 -->
              <!--<field name="context">{'search_default_inuse':True}</field>  -->
              <field name="context">{'search_default_group_by_classify':'1'}</field>
              <field name="view_mode">tree,form,pivot,graph</field>
            </record>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2、效果
    在这里插入图片描述

    二、筛选

    1、效果

    在这里插入图片描述
    2、方法一:在py文件字段加search_able=True

    classify = fields.Selection([('1', '语文'), ('2', '数学')], default='1', string='图书分类', search_able=True)
        
    
    • 1
    • 2

    方法二:在py文件下添加方法

    @api.model
        def fields_get(self, allfields=None, attributes=None):
            res = super().fields_get(allfields=allfields, attributes=attributes)
            res['bookwarehouse']['string'] = '书库名称'
            res['bookwarehouse']['searchable'] = True
            return res
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    方法三:

    <!--搜索和筛选-->
            <record id="view_search_book_message" model="ir.ui.view">
                <field name="name">book_message</field>
                <field name="model">book_message</field>
                <field name="arch" type="xml">
                    <search>
                        <!--搜索-->
                        <field name="bookwarehouse"/>
                        <field name="location"/>
                        <!--筛选-->
                        <filter name="classify" string="数学" domain="[('classify','=', '1')]"/>
                        <filter name="classify" string="语文" domain="[('classify','=', '2')]"/>
                        <!--分割线-->
                        <separator/>
                        <filter string="状态" name="status" domain="[('status', '=', '2')]" />
                    </search>
                </field>
            </record>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    选择自己适用的方法即可

    三、分组

    1、xml文件代码

    <!--搜索和筛选-->
            <record id="view_search_book_message" model="ir.ui.view">
                <field name="name">book_message</field>
                <field name="model">book_message</field>
                <field name="arch" type="xml">
                    <search>
                        <!--搜索-->
                        <field name="bookwarehouse"/>
                        <field name="location"/>
                        
                        <!--分组-->
                        <group expand="1" string="Group By">
                            <filter string="classify" name="group_by_classify" context="{'group_by': 'classify'}"/>
    
                        </group>
    
    
                    </search>
                </field>
            </record>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    2、在act_window添加context

    		<record id="action_book_message" model="ir.actions.act_window">
              <field name="name">图书档案</field>
              <field name="res_model">book_message</field>
              <field name="search_view_id" ref="view_search_book_message"/>
              <!-- 默认分组 -->
              <!--<field name="context">{'search_default_inuse':True}</field>  -->
              <field name="context">{'search_default_group_by_classify':'1'}</field>
              <field name="view_mode">tree,form,pivot,graph</field>
            </record>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3、默认分组按照classify分组:
    在这里插入图片描述

  • 相关阅读:
    上市公司女性高管指标数据1999-2020年(含stata代码)
    window系统 bat脚本开启和关闭防火墙
    vue中div水平垂直居中与body
    用Vue编写一个简单的仿Explorer文件管理器
    【深入浅出 Yarn 架构与实现】4-6 RM 行为探究 - 申请与分配 Container
    LeetCode 6222. 美丽整数的最小增量
    刚刚阿里面软件测试回来,3+1面任职阿里P7,年薪28*15薪
    app运行踩过的坑大赏
    JavaScript处理数组数据-数据匹配-剔除
    上门维修安装派单系统小程序APP开发之会员级别设计深度解析
  • 原文地址:https://blog.csdn.net/weixin_42744834/article/details/133500773