如何解决ODOO XMLRPC 调用在同一模型上创建记录的自定义方法
ODOO(V11) XMLRPC 调用自定义模型方法 (test) 时,如果 create 方法未提交且客户端期望“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,password,{})
models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))
val = models.execute_kw(db,uid,"data.parser","test",["self"])
错误 res = self._obj.execute(query,params)\npsycopg2.ProgrammingError: 关系“data_parser”的列“test_b”不存在\nLINE 1: INSERT INTO "data_parser" ("id","test_b","test_a
解决方法
您可能没有更新模块。
当您调用 test
方法时,您将 test
作为第一个参数传递给 id
,odoo 会将其评估为以下记录集:
data.parser('self',)
使用该记录集调用 create
方法不会引发错误,并且会返回新创建的记录。不会出现错误。
当我们尝试使用未知字段调用 create 方法时,我们在日志中收到以下错误:
data.parser.create() includes unknown fields: field_name
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。