如何通过查询更新Odoo 12中的产品Route_ids
路线?
产品的选择我可以从这个链接中得到答案。Odoo所有产品的按订单生产配置
谢谢也许有这些:
models.execute_kw(db, uid, password, 'product.template', 'write', [[id], {'route_ids': [(1, a, b)]}])
什么是a和b?我认为1是为了更新,对吧?
我认为答案是这样的,但我不确定:
models.execute_kw(db, uid, password, 'product.template', 'write', [[id], {'route_ids': [(1, 915, 17)]}])
1
表示更新,915
表示产品id,17
表示route_id
。
问题是,我如何制作产品列表来更新路线?根据CZoellner的回答,可能是
models.execute_kw(db,uid,pw,'product.template','写入',[[17],{'路由_ids':[(6,0,[951916](]}]
是吗?
好的,我做:
import sys
import xmlrpclib
import ssl
url = "http://localhost:8069"
db = "*******"
username = "*******"
pw = "*******"
gcontext = ssl._create_unverified_context()
# Get the uid
sock_common = xmlrpclib.ServerProxy(
"http://localhost:8069/xmlrpc/common", context=gcontext)
uid = sock_common.login(db, username, pw)
models = xmlrpclib.ServerProxy("http://localhost:8069/xmlrpc/object", context=gcontext)
models.execute_kw(
db, uid, pw, "product.template", "write", [[916], {"route_ids": [(6, 0, [17])]}]
)
它不起作用,我的错在哪里?
这些代码能和odoo 12一起工作吗?
关于Odoo中许多字段的魔术三元组必须如何使用,有很多答案。我对这个基本问题的建议是:查看BaseModel.write()
的文档字符串,因为这个问题的答案已经存在了很长时间。
但对于你的特殊问题:如果你想将一条产品路线设置为只有一条路线,只需使用"覆盖";三元组CCD_ 7。如果您只想将另一条路由添加到所有当前设置的路由;添加";三元组(4, <id_of_route_to_add>, 0)
(您可以在末尾保留0(。
因此,如果您的Make2order路线是例如ID 3:
models.execute_kw(db, uid, pw, 'product.template',
'write', [[template_id], {'route_ids': [(6, 0, [3])]}])
或
models.execute_kw(db, uid, pw, 'product.template',
'write', [[template_id], {'route_ids': [(4, 3,)]}])