[英]How to call an Odoo Controller function from JS file
我從 JS 文件中設置了一個 keyDown 調用 Py 文件中的一個函數
這是我的 JS 文件
_onKeydown_searchText: function () {
var self = this;
var search = {};
search.Input = self.$('#text_input').val().trim();
if (event.keyCode == 13 && search.Input) {
return this._rpc({
route: '/some/route',
params: { search: search.Input }
}).then(function (data) {
console.log(data);
self._result = data;
})
}
},
這是我的 Py 功能
@http.route('/some/route/', website=True, auth='public', csrf=False)
def get_data(self, **kw):
print(kw)
condition = kw['search']
sql = """
select name from res_partner where phone = '%s' or email = '%s'
""" % (condition, condition)
http.request.cr.execute(sql)
result = http.request.cr.fetchall() or []
data = []
list(data)
for x in result:
temp = ''.join(x)
data.append(temp)
return http.request.render("search_vip_route.get_data", {
'data': data
})
但我收到了這個錯誤:
/some/route: 函數聲明為能夠處理“http”類型的請求,但使用“json”類型的請求調用任何人都可以幫我解決這個問題
樂暢
您可以將JSON-RPC 中的值發送到您的Json 控制器中
JS文件:
var ajax = require('web.ajax');
ajax.jsonRpc("/custom/url", 'call', {'Your Key': Your Value}).then(function(data) {
if (data) {
// Code
} else {
// Code
}});
Py File :像這樣從帖子中獲取數據。
@http.route(['/custom/url'], type='json', auth="public", website=True)
def custom_cotroller(self, **post):
get_data = post.get('Your Key')
# Your Customise Code
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.