如何通过新模块中的javascript获取对现有Odoo模块的字段的控制。我不想修改现有模块

时间:2019-04-17 14:42:17

标签: javascript odoo

我在现有模块中有一个弹出窗口。此弹出窗口包含字段。它们不是我可以覆盖的小部件。

<field name="lot_name" groups="stock.group_production_lot" attrs="{'invisible': ['|',('lot_id', '!=', False),('lot_name', '=', False)]}"/>

我已经在一个新模块中继承了这个现有模块

from odoo import models, fields, api
import logging

_logger = logging.getLogger(__name__)

class SerialGenerator(models.Model):
    _inherit = 'stock.move.line'

@api.onchange('lot_name')
    _logger.debug("###################### LOT NAME ######################")
    pass

onchange在python端正确触发。

问题是我需要对该字段进行javascript控制,但是因为它是我不想修改的现有模块的现有字段,所以我需要能够通过新模块中的javascript访问该字段在

\mymodule\static\src\js\mymodule.js

是我正在尝试的一种方法吗?还是我缺少一种简单的方法?

1 个答案:

答案 0 :(得分:0)

我通过从ListRenderer继承JavaScript来完成这项工作

odoo.define('mymodule.module', function (require, instance) {

var ListRenderer = require('web.ListRenderer');
ListRenderer.include({
    events: _.extend({}, ListRenderer.prototype.events, {
        'click .classofinterest': '_newMethod',
    }),
    _newMethod: function () {
        // do stuff in javascript
    }
});

});