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 上的变量。请帮忙。
添加回答
举报