Skip to main content
 首页 » 编程设计

python之如何修复 'TypeError: unlink() missing 1 required positional argument:\' 值\'\n' '

2024年11月01日2luoye11

我使用 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 错误,您调用了一个 方法,该方法是用位置参数 values 定义的,没有参数。这里的问题是模型的取消链接方法不接受任何争论。

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

在您的 odoo 实例中查找此方法并删除 values 参数重新启动服务器,一切都会好起来的。

   _inherit = 'sale.order' 
 
  ...... 
  ...... 
 
   @api.multi 
   def unlink(values):