跳转到主要内容

将计算字段用作域名

项目描述

Beta License: AGPL-3 OCA/web Translate me on Weblate Try me on Runboat

为了减轻视图域的限制,现在您可以在域属性中定义一个计算字段,并且它相关的方法将返回要应用的域。

目录

用法

当您定义一个视图时,可以在关系字段上指定一个域属性。此属性在显示现有记录以进行选择时作为过滤器进行评估。

<field name="product_id" domain="[('type','=','product')]"/>

为域属性提供的值必须是一个表示有效Odoo域的字符串。此字符串在客户端在一个受限的上下文中进行评估,其中我们可以将表单中存在的字段的值作为右操作数进行引用,以及一组有限的功能。

在这个上下文中,构建复杂的域很困难,我们面临一些限制,例如:

  • 在域中包含涉及x2many字段值的条件的语法复杂。

  • 在x2many的情况下,域的右侧可能涉及大量id(性能问题)。

  • 当修改表单而没有修改触发onchange的字段时,由其他字段的onchange计算出的域不会重新计算。

  • 无法扩展现有域。您必须在专门的插件中完全重新定义域。

  • 等等…

为了减轻这些限制,此新插件允许您在视图的xml定义中将一个字段的值用作另一个字段的域。

<field name="product_id_domain" invisible="1"/>
<field name="product_id" domain="product_id_domain"/>

用作域的字段必须以JSON编码的字符串形式提供域。

product_id_domain = fields.Char(
    compute="_compute_product_id_domain",
    readonly=True,
    store=False,
)

@api.multi
@api.depends('name')
def _compute_product_id_domain(self):
    for rec in self:
        rec.product_id_domain = json.dumps(
            [('type', '=', 'product'), ('name', 'like', rec.name)]
        )

错误跟踪器

错误在GitHub Issues上跟踪。如有问题,请检查是否已经有人报告了您的问题。如果您是第一个发现它的人,请通过提供详细且受欢迎的反馈来帮助我们解决它。

请不要直接联系贡献者寻求支持或技术问题的帮助。

致谢

作者

  • ACSONE SA/NV

贡献者

维护者

本模块由OCA维护。

Odoo Community Association

OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛应用。

本模块是GitHub上的OCA/web项目的一部分。

欢迎您贡献力量。有关如何贡献的信息,请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本没有提供源代码分发文件。有关如何生成分发存档的教程,请参阅生成分发存档

构建分发

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面