Python 如何使用web API在Odoo中注册发票付款

Python 如何使用web API在Odoo中注册发票付款,python,odoo,xml-rpc,Python,Odoo,Xml Rpc,我正在尝试为我先前通过API创建的发票注册付款 我把发票寄了如下 models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url)) models.execute_kw(db, uid, password, 'account.move', 'post', [[invoice_id]]) 我想注册这项付款,并将其标记为支付后,它被张贴。我正在尝试使用类似于上面这样的工作流 models.execute_kw(db, uid,

我正在尝试为我先前通过API创建的发票注册付款

我把发票寄了如下

models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))

models.execute_kw(db, uid, password, 'account.move', 'post', [[invoice_id]])
我想注册这项付款,并将其标记为支付后,它被张贴。我正在尝试使用类似于上面这样的工作流

models.execute_kw(db, uid, password, 'account.payment', 'action_register_payment', [{"active_id":invoice_id}])
我也尝试发送模块中的必填字段。我没有收到任何错误,但发票仍然没有登记

有人能帮忙吗?谢谢该方法将检查
活动\u id
是否在上下文中,如果不在上下文中,则返回空字符串。
要传递上下文,您需要在args列表之后传递dict,就像它们将
字段
参数传递给官方XML-RPC文档中的方法一样:

models.execute_kw(db, uid, password, 'account.payment', 'action_register_payment', [[]], {'context': {"active_ids": [invoice_id]}}
该方法以字典的形式返回操作,该操作将导致:

TypeError: cannot marshal <class \'odoo.tools.misc.frozendict\'>
payment_register_id = models.execute_kw(db, uid, password, 'account.payment.register', 'create', [{'journal_id': bank_journal_id, 'payment_method_id': payment_method_id, 'invoice_ids': [(4, invoice_id)]}])
models.execute_kw(db, uid, password, 'account.payment.register', 'create_payments', [[payment_register_id]])