
在Odoo中,默认情况下,关联字段通常显示其关联记录的名称。然而,有时我们需要显示关联记录的其他字段值,例如联系人的电话号码或邮箱地址。直接在表单视图中使用点号表示法 (partner_id.mobile) 并不被支持。本文将详细介绍如何通过创建关联字段来实现这一目标。
实现显示关联字段的其他字段值的关键在于使用关联字段。关联字段允许你在一个模型中访问另一个模型中的字段。
步骤 1: 继承模型并添加关联字段
首先,你需要继承你想要修改的模型,并添加关联字段。例如,如果你想在销售订单(sale.order)中显示合作伙伴(res.partner)的联系人信息,你可以这样操作:
from odoo import models, fields
class SaleOrder(models.Model):
_inherit = 'sale.order'
cp_logistik = fields.Float(related="partner_id.cp_logistik", string="物流负责人")
cp_finance = fields.Float(related="partner_id.cp_finance", string="财务负责人")
cp_marketing = fields.Float(related="partner_id.cp_marketing", string="市场负责人")代码解释:
注意: 你需要根据实际情况修改字段类型(例如 fields.Char, fields.Integer, fields.Boolean 等)以匹配关联字段的类型。string参数用于设置字段在界面上显示的标签。
步骤 2: 修改表单视图
接下来,你需要修改表单视图,将新添加的关联字段添加到视图中。
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="sale_order_form_inherit" model="ir.ui.view">
<field name="name">sale.order.form.inherit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.sale_order_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="BSP Prinsipal" name="bsp_prinsipal_page">
<group>
<field name="cp_logistik"/>
<field name="cp_finance"/>
<field name="cp_marketing"/>
</group>
</page>
</notebook>
</field>
</record>
</odoo>代码解释:
重要提示:
步骤 3: 更新模块
完成以上步骤后,更新你的 Odoo 模块,以使更改生效。
总结
通过创建关联字段,你可以轻松地在 Odoo 表单视图中显示关联记录的任何字段值。这种方法避免了直接在视图中使用点号表示法,提高了代码的可维护性和可读性。记住,要根据实际情况调整字段类型和视图结构,以满足你的特定需求。这种方法不仅适用于销售订单,也适用于其他任何需要显示关联字段信息的Odoo模块。
以上就是Odoo表单视图中显示关联字段的其他字段值的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号