【发布时间】:2018-07-24 10:16:30
【问题描述】:
我正在尝试在 fleet.vehicle 模型中创建新记录。由于记录的Type是Many2One,所以会抛出以下异常。
de.timroes.axmlrpc.XMLRPCServerException: Traceback (most recent call last):
但是我能够使用相同的代码 sn-p 在 res.user 模型中创建记录,因为 Type 是 res.user 型号。
我的代码片段是:
public Integer create(String model, HashMap values) {
Integer newObjectId = null;
try {
XMLRPCClient client = new XMLRPCClient(mUrl);
Object[] parameters = {mDatabase, mUserId, mPassword, model, "create" ,new Object[]{values}};
newObjectId = (Integer) client.call("execute_kw", parameters);
} catch (XMLRPCException e) {
Log.d(CONNECTOR_NAME, e.toString());
}
return newObjectId;
}
日志是:
de.timroes.axmlrpc.XMLRPCServerException: Traceback (most recent call last):
File "/home/wms/RMS/9040/new_odoo11/odoo/service/wsgi_server.py", line 124, in wsgi_xmlrpc
result = odoo.http.dispatch_rpc(service, method, params)
File "/home/wms/RMS/9040/new_odoo11/odoo/http.py", line 115, in dispatch_rpc
result = dispatch(method, params)
File "/home/wms/RMS/9040/new_odoo11/odoo/service/model.py", line 39, in dispatch
res = fn(db, uid, *params)
File "/home/wms/RMS/9040/new_odoo11/odoo/service/model.py", line 153, in execute_kw
return execute(db, uid, obj, method, *args, **kw or {})
File "/home/wms/RMS/9040/new_odoo11/odoo/service/model.py", line 97, in wrapper
return f(dbname, *args, **kwargs)
File "/home/wms/RMS/9040/new_odoo11/odoo/service/model.py", line 160, in execute
res = execute_cr(cr, uid, obj, method, *args, **kw)
File "/home/wms/RMS/9040/new_odoo11/odoo/service/model.py", line 149, in execute_cr
return odoo.api.call_kw(recs, method, args, kw)
File "/home/wms/RMS/9040/new_odoo11/odoo/api.py", line 687, in call_kw
return call_kw_model(method, model, args, kwargs)
File "/home/wms/RMS/9040/new_odoo11/odoo/api.py", line 672, in call_kw_model
result = method(recs, *args, **kwargs)
File "/home/wms/RMS/9040/new_odoo11/addons/fleet/models/fleet_vehicle.py", line 197, in create
vehicle = super(FleetVehicle, self.with_context(mail_create_nolog=True)).create(data)
File "/home/wms/RMS/9040/ac-ars/ac_rms/models/planner_calender.py", line 422, in create
res_id = super(MailThread, self).create(values)
File "/home/wms/RMS/9040/new_odoo11/addons/mail/models/mail_thread.py", line 231, in create
thread = super(MailThread, self).create(values)
File "/home/wms/RMS/9040/new_odoo11/odoo/models.py", line 3278, in create
record = self.browse(self._create(old_vals))
File "/home/wms/RMS/9040/new_odoo11/odoo/models.py", line 3371, in _create
cr.execute(query, tuple(u[2] for u in updates if len(u) > 2))
File "/home/wms/RMS/9040/new_odoo11/odoo/sql_db.py", line 155, in wrapper
return f(self, *args, **kwargs)
File "/home/wms/RMS/9040/new_odoo11/odoo/sql_db.py", line 232, in execute
res = self._obj.execute(query, params)
psycopg2.DataError: invalid input syntax for integer: "Audi A3"
LINE 1: ...et_vehicle_id_seq'), 5, true, 'kilometers', NULL, 'Audi A3',...
[1]
我还附上了我正在尝试创建的图像。任何帮助深表感谢。 我的问题是如何在 odoo 中从 Android/Java 创建一个 Many2One 类型的新记录?
【问题讨论】: