【发布时间】:2016-05-04 02:25:32
【问题描述】:
我在谷歌上搜索有关如何在 odoo 上创建 json 视图的文档,但发现的信息很少
我需要创建一个 json 视图以从 javascript 访问。
我正在尝试这样:
@http.route('/test/status/<name>', auth='public', type='json')
def temp(self, name,**kwargs):
return [{'status': 'test',
}]
Javascript 代码:
function check_status() {
var name = $('#name').val();
$.getJSON("/test/status/" + name +"/",
function(data){
var status = data.status;
$('#msg').text(status);
});
};
我收到以下错误:
<function temp at 0x7f1a8b7d5140>, /test/status/lego/: Function declared as capable of handling request of type 'json' but called with a request of type 'http'
请帮助我卡住了
[编辑答案@odoo_user2]
function json_function_name() {
odoo.define('custom_webpage.my_js', function (require) {'use strict';
var ajax = require('web.ajax');
ajax.jsonRpc('/pa/get_models/' + variable_id, 'call', {}).then(function (data) {
if (data.models == false) {
} else {
// load models
for (var i = 0; i < data.models.length; i++) {
var opt = document.createElement('option');
opt.innerHTML = data.models[i][1];
opt.value = data.models[i][0];
sel_models.appendChild(opt);
}
}
});
})
}
}
这是我使用的javascript函数和控制器:
@http.route('/pa/get_models/<brand_id>', auth='none', type='json',website=True)
def get_models(self,brand_id**kwargs):
cr = http.request._cr
res = utils.get_models(cr,int(brand_id))
return {'models': res,}
【问题讨论】:
-
也许你应该使用'@json'而不是'@http'