如何从 Odoo 中的 Web 控制器调用 json 数据
Posted
技术标签:
【中文标题】如何从 Odoo 中的 Web 控制器调用 json 数据【英文标题】:How to call the json data from web controller in Odoo 【发布时间】:2021-02-10 06:09:28 【问题描述】:我试图从控制器调用该方法,但没有成功。我总是得到错误 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")
);
);
);
【问题讨论】:
【参考方案1】:我已经解决了。 从 xml 获取正确属性时感到困惑。
var db_name = $("input[name='partner_name']").val();
【讨论】:
以上是关于如何从 Odoo 中的 Web 控制器调用 json 数据的主要内容,如果未能解决你的问题,请参考以下文章