ODOO(V11) XMLRPC在自定义模型方法(测试)上的调用是通过错误的,如果创建方法是未提交的,并且客户端期望"self“作为参数。(我使用的是python)
class DataParser(models.Modle):
_name = "data.parser"
test_a: fields.Char()
test_b: fields.Char()
@api.one
def test(self):
obj = self.env['data.parser'].create({'test_a':"test a", 'test_b': "Test B "})
return True客户端XMLRPC
url = 'http://localhost:8069'
db = 'test'
username = 'admin'
password = 'admin'
logging.info("url {}, db {}".format(url, db))
common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url), allow_none=True)
print(common.version())
val = common.login(db, username, password)
uid = common.authenticate(db, username, password, {})
models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))
val = models.execute_kw(db, uid, password, "data.parser", "test", ["self"])错误res = self._obj.execute(query,params)\nLINE copg2ProgrammingError:关系"data_parser“的列"test_b”不存在\n第1行: INSERT INTO "data_parser“("id","test_b","test_a
发布于 2021-02-06 04:47:07
将字段声明更改为:
test_a = fields.Char()
test_b = fields.Char() 当您调用test方法时,您将test作为第一个参数传递到id的位置,odoo会将其计算为以下记录集:
data.parser('self',)使用该记录集调用create方法不会引发错误,并且将返回新创建的记录。不会引发任何错误。
当我们尝试使用未知字段调用create方法时,我们在日志中得到以下错误:
data.parser.create() includes unknown fields: field_name发布于 2021-11-30 07:46:41
我们可以在rpc方法的args参数中发送id!
就像这样,我在flutter中使用了:Future<dynamic> backToDraft(int id) { return Constants.odooRpc!.callKw({ 'model': 'account.payment', 'method': 'action_draft', 'args': [id], 'kwargs': {} }); }
https://stackoverflow.com/questions/66060811
复制相似问题