【发布时间】:2020-11-30 11:08:28
【问题描述】:
我正在开发一个脚本来在 Odoo 模型中创建记录。我需要在特定记录上运行这个模型的方法。在我的情况下,我需要在特定记录上运行的方法没有任何参数(只有self)。我想知道如何通过从客户端到Odoo服务器的xmlrpc调用在模型的特定记录上运行该方法。以下是我尝试调用该方法并传递有关this question 的特定记录的ID 的方式。
xmlrpc_object.execute('test_db', user, 'admin', 'test.test', 'action_check_constraint', [record_id])
action_check_constraint 检查模型每条记录上的一些约束,如果所有约束都通过,则更改记录的状态或引发验证错误。但是上面使用xmlrpc 调用的方法会引发以下错误:
xmlrpc.client.Fault: <Fault cannot marshal None unless allow_none is enabled: 'Traceback (most recent call last):\n File "/home/ibrahim/workspace/odoo13/odoo/odoo/addons/base/controllers/rpc.py", line 60, in xmlrpc_1\n response = self._xmlrpc(service)\n File "/home/ibrahim/workspace/odoo13/odoo/odoo/addons/base/controllers/rpc.py", line 50, in _xmlrpc\n return dumps((result,), methodresponse=1, allow_none=False)\n File "/usr/local/lib/python3.8/xmlrpc/client.py", line 968, in dumps\n data = m.dumps(params)\n File "/usr/local/lib/python3.8/xmlrpc/client.py", line 501, in dumps\n dump(v, write)\n File "/usr/local/lib/python3.8/xmlrpc/client.py", line 523, in __dump\n f(self, value, write)\n File "/usr/local/lib/python3.8/xmlrpc/client.py", line 527, in dump_nil\n raise TypeError("cannot marshal None unless allow_none is enabled")\nTypeError: cannot marshal None unless allow_none is enabled\n'>
> /home/ibrahim/workspace/scripts/automate/automate_record_creation.py(328)create_record()
谁能帮助通过xmlrpc客户端到Odoo服务器调用特定记录上的模型方法(除了self之外没有参数)的正确和最佳方式?
【问题讨论】: