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

Odoo中修改关联模型「Add a line」文本的标准方法是什么?

Odoo中修改关联字段添加记录链接文本的规范方法

不需要重写default_view_get方法,Odoo提供了更简洁、符合规范的实现方式,以下是两种常用方案:

方案一:视图层面直接配置(推荐,无需编写Python/JS代码)

针对特定的related_model_ids字段,在表单视图的字段定义中,通过options参数指定自定义的添加按钮文本:

<field name="related_model_ids" widget="one2many" options="{'add_line_label': '你的自定义文本'}">
    <!-- 内嵌的树视图/表单视图定义 -->
    <tree>
        <field name="field1"/>
        <field name="field2"/>
    </tree>
</field>

如果是many2many字段,同样可以使用options参数:

<field name="related_model_ids" widget="many2many_tags" options="{'add_line_label': '你的自定义文本'}"/>

这种方式仅作用于当前字段,不会影响其他关联字段的添加按钮文本,完全符合Odoo的视图配置规范。

方案二:全局自定义(适合批量修改场景)

如果需要全局修改所有关联字段的添加按钮文本,或者需要更复杂的逻辑控制,可以通过继承Web模块的Widget实现:

  1. 创建自定义JS文件,继承web.One2ManyWidget并重写_get_add_line_label方法:
odoo.define('your_module.one2many_widget', function (require) {
    "use strict";

    var One2ManyWidget = require('web.One2ManyWidget');

    One2ManyWidget.include({
        _get_add_line_label: function () {
            // 自定义文本,可根据上下文动态调整
            return this.options.add_line_label || "你的全局自定义文本";
        },
    });
});
  1. 在模块的__manifest__.py中加载该JS文件:
'assets': {
    'web.assets_backend': [
        'your_module/static/src/js/one2many_widget.js',
    ],
},

这种方式适合需要统一修改多个字段的场景,但仅建议在全局需求时使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:42:39