亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Odoo 13 中動態重新渲染模板的最佳方式

在 Odoo 13 中動態重新渲染模板的最佳方式

素胚勾勒不出你 2022-10-13 09:45:27
在 QWeb 網頁(onchange元素上的事件)發生更改后,我正在嘗試使用一組新數據重新渲染模板。我習慣于使用 Vue 等 JS 框架,但在更新 QWeb 網頁上的值時遇到了問題。我沒有在文檔中看到如何做到這一點的明確解釋,在搜索互聯網和源代碼時,我看到了許多不同的答案,大概是針對不同的 Odoo 版本。但兩者都不起作用。我看到了兩種主要的方法:Python控制器內部JavaScript 小部件內部在 Python 控制器中,我看到了不同的語法,我不確定何時使用什么。例如:
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

# First method

@http.route('/test', type='json' auth='user', website=True)

def object(self, **kw):

    return http.request.render('template.name', {

        'value': kw.get('value', 0),

    })


# Second method

@http.route('/test', type='json' auth='user', website=True)

def object(self, **kw):

    return request.env['ir.ui.view'].render_template('template.name', {

        'value': kw.get('value', 0),

    })

它們之間有什么區別嗎?同樣出于某種原因,它在從 JavaScript 調用它并使用type='json'. 它僅在我使用type='http'并直接從瀏覽器轉到那里時呈現 - 我需要一個 JS 事件來導致重新呈現。


我還看到可以像這樣從 JavaScript 渲染模板:


_onChange: function () {

    console.log("something changed!");


    return this._rpc({

        route: '/test',

        params: {

            value: 1,

        }

    }).then(function (data) {

        this.$el.html(QWeb.render('template.name', {

            value: data.value

        }));

    });

},

但由于某種原因,我得到了錯誤Template 'template.name' not found。


我在這一點上非常卡住,不知道下一步該怎么做。我可以向控制器發送數據,也可以從控制器發送數據。但我不知道如何更新 QWeb 上的變量。請幫忙。


查看完整回答
反對 回復 2022-10-13
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號