Many2one res.partner在CRM模块中过滤

问题描述 投票:5回答:1

我正在尝试在CRM模块的商机部分中对客户应用一组。

我想在industry上分组客户/机会。

我在res.partner中使用了类似的代码,我无法解决这个问题!

models.朋友

x_industry_id = fields.Many2one(string="Industry", comodel_name="res.partner")

vievs.hml

 <record id="view_crm_case_opportunities_filter_inherit" model="ir.ui.view">
    <field name="name">crm.lead.search.opportunity</field>
        <field name="model">crm.lead</field>
    <field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/>
    <field name="arch" type="xml">

     <xpath expr="//search" position="inside">

        <filter name="x_industry_id" string="Industry" context="{'group_by':'x_industry_id'}" domain="[('industry_id','!=', False)]"/>

       </xpath>

    </field>
</record>

我也使用相同的方法与过滤器和其他组有相同的问题。

他们只是看起来不正常!

如何将组和过滤器应用于不同的模型

xml python-3.x odoo odoo-11
1个回答
5
投票

删除domain参数并将您的过滤器放在group标记的search标记内,因为您尝试创建一个组,而不是域过滤器:

<record id="view_crm_case_opportunities_filter_inherit" model="ir.ui.view">
    <field name="name">crm.lead.search.opportunity</field>
    <field name="model">crm.lead</field>
    <field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/>
    <field name="arch" type="xml">
        <xpath expr="//search/group" position="inside">
            <filter name="x_industry_id" string="Industry" context="{'group_by':'x_industry_id'}"/>
        </xpath>
    </field>
</record>     

search视图中有三种过滤器:

  • 按文本过滤:允许用户将字段与某些文本进行比较,并查找与表达式匹配的记录。他们使用field标签和filter_domainoperator等参数(例如:<field name="lost_reason"/>)。
  • 按域过滤:允许用户单击您创建的过滤器,并仅查看与您指定的域匹配的记录。他们使用filter标签和domain参数等(例如:<filter string="My Pipeline" name="assigned_to_me" domain="[('user_id', '=', uid)]" help="Opportunities that are assigned to me"/>)。
  • 按组筛选:允许用户按字段对记录进行分组。它们位于搜索视图中的group标签内,使用filter标签和context参数(使用密钥group_by)等等(例如:<filter string="Salesperson" context="{'group_by':'user_id'}"/>)。

所以我认为你混合了两种过滤器。这就是你应该删除domain的原因。

当然,检查您是否在crm文件中添加了__manifest__.py依赖项,并在此之后重新启动Odoo服务(更新模块)。

© www.soinside.com 2019 - 2024. All rights reserved.