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

Odoo 16表单视图中如何实现同一地址字段两种显示形式?

Odoo 16 同一字段两种显示形式的解决方案

问题原因

你当前的写法无效,是因为res.partner模型默认的name_get方法并未读取show_address上下文参数来调整显示内容,所以无论传递什么上下文,字段都会按照默认规则显示名称加地址。

解决思路一:重写res.partner的name_get方法

通过上下文控制name_get的返回值,让字段根据不同上下文显示不同内容:

  1. 在自定义模块中重写res.partner模型:
from odoo import models, api

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

    @api.multi
    def name_get(self):
        result = []
        show_address = self.env.context.get('show_address', False)
        for partner in self:
            if show_address:
                # 自定义名称+地址的显示格式
                address_parts = [partner.street, partner.city, partner.zip]
                address = ', '.join(part for part in address_parts if part)
                name = f"{partner.name}\n{address}" if address else partner.name
            else:
                # 仅显示名称
                name = partner.name
            result.append((partner.id, name))
        return result
  1. 修改视图XML代码:
    给两个字段传递不同上下文,第一个字段显式指定不显示地址:
<group>
    <group>
        <field name="partner_shipping_id" context="{'show_address': 0}"/>
    </group>
    <group>
        <field name="partner_shipping_id" context="{'show_address': 1}" options="{'always_reload': True, 'no_open':true}" readonly="1"/>
    </group>
</group>

解决思路二:使用关联字段(Related Field)

在当前模型中新增仅关联合作伙伴名称的字段,无需修改原模型的显示逻辑:

  1. 在当前模型中新增关联字段:
from odoo import models, fields

class YourModel(models.Model):
    _inherit = 'your.model.name'  # 替换为你实际使用的模型名称

    partner_shipping_name = fields.Char(related='partner_shipping_id.name', string='Shipping Partner Name')
  1. 修改视图XML代码:
    第一个字段用新增的关联字段显示名称,第二个用原字段显示完整信息:
<group>
    <group>
        <field name="partner_shipping_name"/>
    </group>
    <group>
        <field name="partner_shipping_id" options="{'always_reload': True, 'no_open':true}" readonly="1"/>
    </group>
</group>

注意事项

  • 思路一适合需要全局统一控制合作伙伴显示格式的场景,但需要开发自定义模块;
  • 思路二更轻量化,仅针对当前模型需求,不会影响其他业务场景的合作伙伴字段显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:01:09