如何从 Odoo 中的 Web 控制器调用 json 数据
How to call the json data from web controller in Odoo
我正在尝试从控制器调用该方法但失败了。我总是收到 createdb() 有 2 个参数 的错误。知道如何获得 db_name 的值吗?请给我一些关于如何做的例子。非常感谢您的帮助。
这就是我所做的:
<div class="form-group form-field o_website_form_required_custom">
<label class="col-md-3 col-sm-4 control-label"
for="partner_name">Company Name</label>
<div class="col-md-7 col-sm-8">
<input type="text"
class="form-control o_website_form_input"
name="partner_name" required=""
t-att-value="request.params.get('partner_name', '')" />
</div>
</div>
@http.route('/cystin/createdb', type='json', auth="public", methods=["POST"], website=True)
def createdb(self, db_name):
session = self._authenticate()
if not session:
return json.dumps(False)
# create a new database
headers = {'Content-Type': 'application/json'}
create_db_url = "http://localhost:8090/saas_api/create_db"
data = {"jsonrpc": 2.0, "params": { "name": db_name } } //how to get this data?
_logger.debug("Creating database...")
r = session.post(url=create_db_url, data=json.dumps(data), headers=headers)
if r.ok:
return json.dumps(True)
else:
return json.dumps(False)
var session = require('web.session');
$(function(){
$("#trybutton").click(function()
{
var db_name = $('input').attr('name', 'partner_name').val();
session.rpc('/cystin/createdb',
{
db_name: db_name,
}).then(function()
{
$("div.spanner").addClass("show");
$("div.overlay").addClass("show")
});
});
});
我已经解决了。
在从 xml.
获取正确属性时感到困惑
var db_name = $("input[name='partner_name']").val();
我正在尝试从控制器调用该方法但失败了。我总是收到 createdb() 有 2 个参数 的错误。知道如何获得 db_name 的值吗?请给我一些关于如何做的例子。非常感谢您的帮助。
这就是我所做的:
<div class="form-group form-field o_website_form_required_custom">
<label class="col-md-3 col-sm-4 control-label"
for="partner_name">Company Name</label>
<div class="col-md-7 col-sm-8">
<input type="text"
class="form-control o_website_form_input"
name="partner_name" required=""
t-att-value="request.params.get('partner_name', '')" />
</div>
</div>
@http.route('/cystin/createdb', type='json', auth="public", methods=["POST"], website=True)
def createdb(self, db_name):
session = self._authenticate()
if not session:
return json.dumps(False)
# create a new database
headers = {'Content-Type': 'application/json'}
create_db_url = "http://localhost:8090/saas_api/create_db"
data = {"jsonrpc": 2.0, "params": { "name": db_name } } //how to get this data?
_logger.debug("Creating database...")
r = session.post(url=create_db_url, data=json.dumps(data), headers=headers)
if r.ok:
return json.dumps(True)
else:
return json.dumps(False)
var session = require('web.session');
$(function(){
$("#trybutton").click(function()
{
var db_name = $('input').attr('name', 'partner_name').val();
session.rpc('/cystin/createdb',
{
db_name: db_name,
}).then(function()
{
$("div.spanner").addClass("show");
$("div.overlay").addClass("show")
});
});
});
我已经解决了。 在从 xml.
获取正确属性时感到困惑var db_name = $("input[name='partner_name']").val();