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

如何在Odoo的one2many字段中实现两个字段的拼接展示?

实现方案

该需求完全可以实现,根据你的使用场景可选以下两种主流方案:

方案1:后端新增计算字段(推荐)

适用于需要将拼接字段用于过滤、导出、后续业务逻辑计算的场景,在one2many关联的子表模型中新增计算字段即可,以Odoo框架为例代码如下:

from odoo import models, fields

class YourSubModel(models.Model):
    _name = 'your.sub.model'
    # 原有两个待拼接字段
    field_a = fields.Char(string='字段A')
    field_b = fields.Char(string='字段B')
    # 新增拼接计算字段
    merged_field = fields.Char(string='合并展示字段', compute='_compute_merged_field')
    
    def _compute_merged_field(self):
        for item in self:
            item.merged_field = f"{item.field_a or ''} {item.field_b or ''}"

配置完成后在父模型的one2many列表视图中直接引用merged_field字段展示即可。

方案2:前端视图直接拼接

如果仅需要在页面展示拼接效果,不需要用到该字段做业务处理,可以直接修改视图XML代码实现,无需修改模型层:

<field name="your_one2many_field_id">
    <tree string="子表列表">
        <field name="field_a" invisible="1"/>
        <field name="field_b" invisible="1"/>
        <column name="merged_show" string="合并展示字段">
            <t t-esc="record.field_a.value"/> <t t-esc="record.field_b.value"/>
        </column>
    </tree>
</field>

如果你使用的是其他包含one2many字段类型的框架,核心逻辑一致:要么在子模型层新增计算字段合并两个目标字段,要么在视图渲染层对两个字段的值做拼接输出即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:57:03