1 回答

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 上的變量。請幫忙。
添加回答
舉報