使用计算字段作为域
项目描述
Web域字段
当您定义一个视图时,您可以在关系字段上指定一个域属性。此属性作为过滤器进行评估,以便在显示现有记录进行选择时应用。
<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问题上进行跟踪。如果遇到问题,请检查那里您的问题是否已经报告。如果您是第一个发现它的人,请帮助我们通过提供详细和受欢迎的反馈来解决这个问题。
鸣谢
图片
Odoo社区协会: 图标。
贡献者
Laurent Mignon <laurent.mignon@acsone.eu>
Denis Roussel <denis.roussel@acsone.eu>
维护者
本模块由OCA维护。
OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。
要为此模块做出贡献,请访问https://odoo-community.org。
项目详情
关闭
odoo13_addon_web_domain_field-13.0.1.0.1.dev7-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | df45533958bd584ad14fe32c8a18721abfe680f051e43784ae15a8fa5bf39a20 |
|
MD5 | c902292d92ff986f00d5ae3c43d7266e |
|
BLAKE2b-256 | acecf78ba6175051fb7204fb9a2b66e8b19d33c0cfdcd76c93a8d71349b045ee |