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

Odoo 10 视图扩展咨询:添加关联模型product_id字段

在Odoo 10中扩展包裹视图显示关联产品字段的实现方案

好的,要在Odoo 10的包裹操作视图中展示来自pack_operation_product_id关联的product_id字段,最稳妥的方式是通过自定义模块继承并扩展原有视图(避免修改核心模块代码),具体实现步骤如下:

1. 创建自定义模块

首先你需要一个基础的自定义模块,比如命名为stock_pack_product_ext,模块结构如下:

stock_pack_product_ext/
├── __init__.py
├── __manifest__.py
└── views/
    └── pack_operation_views.xml

模块配置文件(manifest.py)

这个文件用来声明模块的基本信息和依赖:

{
    'name': 'Stock Pack Operation Product Display',
    'version': '1.0',
    'author': 'Your Name',
    'depends': ['stock'],  # 依赖stock模块,确保能继承其视图
    'data': [
        'views/pack_operation_views.xml',
    ],
    'installable': True,
    'auto_install': False,
}

__init__.py保持空文件即可。

2. 编写视图扩展XML

在views/pack_operation_views.xml中,我们继承Odoo stock模块的默认包裹操作视图,并插入关联的产品字段:

扩展树视图(列表视图)

如果要在包裹操作的列表中显示产品字段:

<odoo>
    <!-- 继承默认树视图 -->
    <record id="stock_pack_operation_tree_extended" model="ir.ui.view">
        <field name="name">stock.pack.operation.tree.extended</field>
        <field name="model">stock.pack.operation</field>
        <field name="inherit_id" ref="stock.view_pack_operation_tree"/>
        <field name="arch" type="xml">
            <!-- 在产品数量字段后插入关联产品字段 -->
            <xpath expr="//field[@name='product_qty']" position="after">
                <field name="pack_operation_product_id.product_id" string="Product"/>
            </xpath>
        </field>
    </record>

    <!-- 扩展表单视图(可选) -->
    <record id="stock_pack_operation_form_extended" model="ir.ui.view">
        <field name="name">stock.pack.operation.form.extended</field>
        <field name="model">stock.pack.operation</field>
        <field name="inherit_id" ref="stock.view_pack_operation_form"/>
        <field name="arch" type="xml">
            <!-- 在产品数量所在的分组内添加产品字段 -->
            <xpath expr="//field[@name='product_qty']/.." position="inside">
                <field name="pack_operation_product_id.product_id" string="Product" class="oe_inline"/>
            </xpath>
        </field>
    </record>
</odoo>

3. 安装并测试模块

  1. 将模块放到Odoo的addons目录下
  2. 在Odoo后台启用开发者模式,找到该模块并安装
  3. 打开「仓库」→「操作」→「包裹操作」视图,就能看到新增的「Product」字段了

关键说明和注意事项

  • 关联字段引用:直接使用pack_operation_product_id.product_id即可跨关联字段显示产品,Odoo会自动处理关联数据的加载
  • 视图定位:xpath的expr用来定位要插入字段的位置,你可以根据实际需求调整(比如在其他字段前后插入)
  • 空值处理:如果pack_operation_product_id为空,该字段会显示空值,这是正常的业务逻辑
  • 视图ID确认:如果你要扩展的不是stock模块的默认视图,需要修改inherit_id的ref值为目标视图的XML ID

内容的提问来源于stack exchange,提问作者M.E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:42:17