How to fix 'TypeError: unlink() missing 1 required positional argument: \'values\'\n''

How to fix 'TypeError: unlink() missing 1 required positional argument: \'values\'\n''

我正在使用 Python 3.6 和 xmlrpc 取消链接 odoo 11 CE 中所有已取消的销售订单,但我仍然收到此错误:

odoo11/odoo/api.py", line 690, in call_kw_multi\n    result = method(recs, args, *kwargs)\nTypeError: unlink() missing 1 required positional argument: \'values\'\n'>

我也试过类似的东西:

            , [[sale_id]])

而不是:

            , [sale_id])

这是我的代码:

import xmlrpc.client

class Odoo():
    def __init__(self):
        self.DATA = "DB"
        self.USER = "USER"
        self.PASS = "PASS"
        self.PORT = "8069"
        self.URL = "http://localhost"
        self.URL_COMMON = "{}:{}/xmlrpc/2/common".format(
            self.URL, self.PORT)
        self.URL_OBJECT = "{}:{}/xmlrpc/2/object".format(
            self.URL, self.PORT)
    def authenticateOdoo(self):
        self.ODOO_COMMON = xmlrpc.client.ServerProxy(self.URL_COMMON)
        self.ODOO_OBJECT = xmlrpc.client.ServerProxy(self.URL_OBJECT)
        self.UID = self.ODOO_COMMON.authenticate(
            self.DATA
            , self.USER
            , self.PASS
            , {})
def main():
    od = Odoo()
    od.authenticateOdoo()
    sale_ids = od.ODOO_OBJECT.execute_kw(od.DATA, od.UID, od.PASS, 'sale.order', 'search', [[("state", "=", "cancel")]])
    od.ODOO_OBJECT.execute_kw(od.DATA, od.UID, od.PASS, 'sale.order', 'unlink', [sale_ids])
    print(od.UID)

if __name__ == '__main__':
    main()

此错误是 python 错误,您调用了一个 method,它是用位置参数 values 定义的,没有参数。这里的问题是 Model 的 unlink 方法不接受任何争论。

所以检查你的服装插件,你在哪里继承了 sale.order 模型,你覆盖了 unlink 方法并删除了 values 参数。

在你的odoo实例中寻找这个方法并删除values争论重新启动服务器,一切都会好起来的。

   _inherit = 'sale.order'

  ......
  ......

   @api.multi
   def unlink(values):