【问题标题】:override the _render function of listView does't work in odoo覆盖listView的_render函数在odoo中不起作用
【发布时间】:2022-07-18 21:47:19
【问题描述】:

这是我的代码。我想根据 rpc 调用的结果更改一些字段的背景颜色。但是只有当我在editsave之间切换模式时才会发生变化。当我打开这条记录时应该会发生变化。

有什么想法吗?

var render = listRender.extend({
        init: function () {
            this._super.apply(this, arguments)
        },
        async _render() {
            const result = this._super.apply(this, arguments);
            var fields = [];
            for (let index in this.arch.children) {
                if (this.arch.children[index].tag === "field") {
                    fields.push({"field_name": this.arch.children[index].attrs.name, "index": index});
                }
            }
            var self = this;
            this.arch.children[36]["attrs"]["class"] = "red_color";
            var infos = await this._rpc({
                model: "purchase.order",
                method: "is_updated",
                args: [{"fields": fields, "id": this.state.res_ids}]
            });
            infos.data.forEach(ele => {
                this.arch.children[parseInt(ele["index"])]["attrs"]["class"] = "red_color";
            })
        },
    });

【问题讨论】:

    标签: javascript odoo


    【解决方案1】:

    渲染覆盖不是解决问题的正确方法。考虑更改相应的视图:“sale.order.form”。 您可以通过以下方式找到它:在应用设置中,通过在您的网址中添加“?debug=1”切换到调试模式,重新加载页面,然后转到顶部菜单栏中的最后一项:技术 > 视图。

    然后,搜索:sale.order.form

    ...对应于 src/odoo/addons 中的以下 xml 文件:sale/sale_views.xml 或 sale_purchase/sale_views.xml 和/或 website_sale/sale_order_views.xml

    对应的url也必须相似(但id不同=...):

    https://yourodoodomain.com/web#id=949&action=28&model=ir.ui.view&view_type=form&cids=1&menu_id=4

    【讨论】:

    • 在视图中:sale.order.form ....对应于 src/odoo/addons 中的以下 xml 文件:sale/sale_views.xml 或 sale_purchase/sale_views.xml 和/或 website_sale/ sale_order_views.xml
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多