【问题标题】:How do I get control of the fields of a existing Odoo module through javascript from a new module. I do not want to modify the existing module如何通过新模块中的 javascript 控制现有 Odoo 模块的字段。我不想修改现有模块
【发布时间】:2019-04-17 14:42:17
【问题描述】:

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

<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

我正在尝试的方法是否可行,或者我是否缺少一种简单的方法?

【问题讨论】:

  • 可以继承Form View或者Tree View的Javascript。
  • 感谢@qvpham,我确实做到了,并且成功了。

标签: javascript odoo


【解决方案1】:

我通过从 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
    }
});

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多