在使用xmlrpc连接到服务器并遵循这里的指示后,我尝试更改route_ids (采购->供应链信息->路由)的值,从而没有选择这三种选项(制造、购买、制造到订单)。
首先,我取当前的值:
>>> models.execute_kw(db, uid, password,
... 'product.template', 'read',
... [125], {'fields': ['route_ids']})
{'route_ids': [5, 6, 1], 'id': 125}然后,我尝试更新这些值:
>>> models.execute_kw(db, uid, password, 'product.template', 'write',
... [[125], {'route_ids': []}])
True最后,我检查这些值是否已经更新:
>>> models.execute_kw(db, uid, password,
... 'product.template', 'read',
... [125], {'fields': ['route_ids']})
{'route_ids': [5, 6, 1], 'id': 125}知道为什么这不管用吗?当我试图更改display_name时,我得到了相同的结果,即没有改变,但是当我试图更改weight_net时,一切都很好。有什么想法吗?
发布于 2015-02-26 17:26:58
如果您查看了关于写方法这里的文档,您就会了解为什么它不能工作。实际上,您给出的页面确实显式地引用了它,那里。
因此,我认为您遇到的问题是,您正在尝试清空route_ids,为它分配一个空列表。
这些文件指出:
One2many和Many2many使用一种特殊的“命令”格式来操作存储在/关联到字段中的一组记录。 这种格式是按顺序执行的三重奏列表,其中每个三重奏都是在记录集上执行的命令。并非所有命令都适用于所有情况。
我们有兴趣删除这些记录:
(5,_,_) 从集合中移除所有记录,相当于显式地在每个记录上使用命令3。不能在One2many上使用。不能在create()中使用。
所以我觉得你应该写:
>>> models.execute_kw(db, uid, password, 'product.template',
'write', [[125], {'route_ids': [[5, 0, 0]]}])
True希望能帮上忙。
https://stackoverflow.com/questions/28612933
复制相似问题