odoo search视图基本操作

Odoo的搜索视图(search view)是用来定义列表视图和看板视图的搜索面板。搜索视图允许用户通过预定义的过滤器和分组对记录进行筛选和分组,从而快速定位到他们需要的数据。搜索视图的定义通常在XML文件中以标签的形式出现。

以下是搜索视图的一些主要元素:

  • 过滤器(Filters) - 允许用户根据指定的条件筛选记录。
  • 分组(Group by) - 允许用户根据某个字段对记录进行分组。
  • 收藏(Favorites) - 用户可以保存特定的搜索条件,以便日后使用。
  • 字段(Field) - 用于搜索的字段,可以是关系字段、字符字段等。
    搜索视图的XML结构如下:
<search string="搜索视图标题">
    <field name="字段名称" string="字段标签" filter_domain="[过滤表达式]" />
    <filter string="过滤器名称" name="过滤器标识" domain="[过滤表达式]" />
    <filter string="分组名称" name="分组标识" context="{'group_by': '字段名称'}"/>
    <separator />
    ...
</search>

修改过滤器和分组
在定制搜索视图时,你可能想要添加或修改过滤器和分组。这可以通过在标签中添加标签来实现。 标签的属性string定义了在UI上显示的过滤器名称,domain定义了过滤器的筛选逻辑,而context则用于定义分组逻辑。

<search string="合作伙伴搜索">
    <field name="name" string="伙伴名称" />
    <field name="city" />
    <field name="country_id" string="国家" />
    <filter string="今天" name="today_filter" domain="[('date','=','today')]" />
    <filter string="本月" name="month_filter" domain="[('date','&gt;=','month_start'),('date','&lt;=','month_end')]" />
    <group string="按国家分组" name="group_by_country" context="{'group_by':'country_id'}"/>
</search>

在这个例子中,我们为合作伙伴模型定义了一个搜索视图,包括按“伙伴名称”、“城市”、“国家”搜索的字段。通过两个过滤器,“今天”用于筛选今天的记录,而“本月”用于筛选本月的记录。此外,我们还定义了一个“按国家分组”的分组选项。

用户在界面上可以通过选择“今天”或“本月”过滤器来筛选记录,或者通过选择“按国家分组”来查看按国家归类的合作伙伴。

如果您想要隐藏已有的筛选(过滤器),可以通过继承现有的搜索视图并使用invisible="1"属性来实现。这通常通过创建一个新的XML文件并使用和标签来定制已有的视图。您将需要使用xpath表达式来定位您想要修改的过滤器元素,并对其进行适当的修改。

以下是一个例子,演示如何隐藏一个已有的筛选器:

<odoo>
    <data>
        <!-- 继承现有的搜索视图 -->
        <record id="原有视图的外部ID" model="ir.ui.view">
            <field name="name">view.model.search.inherit</field> <!-- 设置新视图的名称 -->
            <field name="inherit_id" ref="原有视图的外部ID"/> <!-- 指定继承的视图ID -->
            <field name="arch" type="xml">
                <!-- 使用xpath定位并隐藏过滤器 -->
                <filter string="要隐藏的过滤器名称" position="attributes">
                    <attribute name="invisible">1</attribute>
                </filter>
            </field>
        </record>
    </data>
</odoo>

在这个XML代码中:

  • <record>标签定义了一个新的视图记录,这个记录将会继承并修改现有的视图。
  • <field name="inherit_id" ref="原有视图的外部ID"/>指定了我们想要继承的原有视图的外部ID。
  • <field name="arch" type="xml">包含了对原有视图结构的修改。
  • xpath表达式<filter string="要隐藏的过滤器名称" position="attributes">用来定位我们想要隐藏的过滤器。
  • <attribute name="invisible">1</attribute>是设置过滤器为不可见的实际操作。
    请注意,要隐藏的过滤器名称应该是过滤器在原有视图中的string属性值或者是它的name属性值(取决于哪个被用来在原有视图中唯一地识别过滤器)。您还需要确保您使用的是正确的XML ID来引用现有的视图和字段。在上述代码中,原有视图的外部ID应替换为您想要修改的搜索视图的实际XML ID。

假如原有视图中存在一个过滤器ID是“partner_active_filter”,并且您想要隐藏它,您应该在ref属性中使用它的外部ID,像这样:

<filter name="partner_active_filter" position="attributes">
    <attribute name="invisible">1</attribute>
</filter>

这样做之后,当用户访问相应的模型视图时,该过滤器不会显示在搜索面板上。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Odoo中嵌入视图,可以按照以下方法进行操作: 1. 使用看板视图进行嵌入:看板视图是一种可视化的视图,将记录显示为卡片,并可以按列分组。您可以在看板视图中设置属性,如default_group_by和default_order,来定义视图的默认行为。您还可以使用属性examples来定义看板示例设置。 2. 使用表单视图进行嵌入:表单视图Odoo中最常见的视图类型之一,您可以使用表单视图来显示和编辑记录的详细信息。如果您想要在看板视图中进行记录的快速创建,可以设置quick_create属性为true。 3. 使用列表视图进行嵌入:列表视图以表格形式显示记录,并提供了排序、筛选和分页等功能。您可以在列表视图中设置属性,如default_order,来定义记录的默认排序顺序。 总结起来,要在Odoo中嵌入视图,您可以使用看板视图、表单视图或列表视图,并根据您的需求设置相应的属性来定义视图的行为。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Odoo看板视图](https://blog.csdn.net/weixin_44141284/article/details/128813441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [odoo14视图通过路由嵌入内容](https://blog.csdn.net/weixin_44565926/article/details/122139573)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值