You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Odoo邮件列表筛选条件中显示Pricelist字段?

Odoo 15邮件列表筛选无法找到Pricelist字段的解决方法

问题描述

我需要为Odoo邮件列表添加筛选条件,但无法找到名为Pricelist的字段。输入‘Price...’后该字段未出现在下拉菜单中,不过其他字段可正常添加(邮件列表通过条件筛选联系人)。

相关截图说明:

  • 筛选条件列表:筛选条件列表
  • Studio模式下公司端的字段设置:公司端设置
  • 个人端的字段显示:个人端显示

尝试搜索Parent Company -> Pricelist或Related Company -> Pricelist也无果。当前使用Odoo版本15.0+e,希望该字段能像Delivery Method一样显示在筛选条件下拉菜单中。

解决步骤

1. 检查Pricelist字段的搜索可见性设置

进入Studio模式,找到公司(res.company)模型的Pricelist字段(通常对应property_product_pricelist):

  • 编辑该字段属性,确保搜索可见选项被勾选
  • 保存设置后刷新页面,再次尝试在筛选下拉中搜索

2. 通过Studio手动添加关联筛选条件

如果直接搜索不到,可手动构建关联筛选路径:

  • 在邮件列表的筛选编辑界面,点击添加筛选条件
  • 选择关联字段,依次找到「公司(Parent Company/Related Company)」,再选择对应的Pricelist字段
  • 保存后该字段会出现在筛选下拉菜单中

3. 自定义模块扩展筛选字段(Studio无效时使用)

若上述方法无法解决,可通过自定义模块将公司的Pricelist字段添加到联系人模型的可筛选列表中:

from odoo import models, fields

class ResPartner(models.Model):
    _inherit = 'res.partner'

    # 添加关联字段用于筛选(支持存储以优化性能)
    company_pricelist_id = fields.Many2one(
        'product.pricelist', 
        string='Company Pricelist', 
        related='parent_id.property_product_pricelist', 
        store=True
    )

    # 扩展搜索逻辑,支持直接搜索Pricelist名称
    def _name_search(self, name='', args=None, operator='ilike', limit=100, name_get_uid=None):
        args = args or []
        if name:
            args += ['|', ('company_pricelist_id.name', operator, name), ('name', operator, name)]
        return super(ResPartner, self)._name_search(name=name, args=args, operator=operator, limit=limit, name_get_uid=name_get_uid)

将代码写入自定义模块,安装并更新模块后,company_pricelist_id会直接出现在筛选下拉中,也能通过Pricelist名称搜索匹配联系人。

4. 检查字段权限配置

确认当前用户角色拥有Pricelist字段的访问权限:

  • 进入「设置 -> 权限 -> 角色」,找到当前用户所属角色
  • 检查是否在销售/联系人权限组中,且拥有查看Pricelist字段的权限
  • 若缺少权限,添加后刷新页面重试

内容的提问来源于stack exchange,提问作者HoRn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:25:10