首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Odoo/OpenERP 8中通过Web更新`route_ids`的值?

如何在Odoo/OpenERP 8中通过Web更新`route_ids`的值?
EN

Stack Overflow用户
提问于 2015-02-19 17:29:02
回答 1查看 929关注 0票数 0

在使用xmlrpc连接到服务器并遵循这里的指示后,我尝试更改route_ids (采购->供应链信息->路由)的值,从而没有选择这三种选项(制造、购买、制造到订单)。

首先,我取当前的值:

代码语言:javascript
复制
>>> models.execute_kw(db, uid, password,
...     'product.template', 'read',
...     [125], {'fields': ['route_ids']})
{'route_ids': [5, 6, 1], 'id': 125}

然后,我尝试更新这些值:

代码语言:javascript
复制
>>> models.execute_kw(db, uid, password, 'product.template', 'write', 
...     [[125], {'route_ids': []}])    
True

最后,我检查这些值是否已经更新:

代码语言:javascript
复制
>>> models.execute_kw(db, uid, password,
...     'product.template', 'read',
...     [125], {'fields': ['route_ids']})
{'route_ids': [5, 6, 1], 'id': 125}

知道为什么这不管用吗?当我试图更改display_name时,我得到了相同的结果,即没有改变,但是当我试图更改weight_net时,一切都很好。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-26 17:26:58

如果您查看了关于写方法这里的文档,您就会了解为什么它不能工作。实际上,您给出的页面确实显式地引用了它,那里

因此,我认为您遇到的问题是,您正在尝试清空route_ids,为它分配一个空列表。

这些文件指出:

One2many和Many2many使用一种特殊的“命令”格式来操作存储在/关联到字段中的一组记录。 这种格式是按顺序执行的三重奏列表,其中每个三重奏都是在记录集上执行的命令。并非所有命令都适用于所有情况。

我们有兴趣删除这些记录:

(5,_,_) 从集合中移除所有记录,相当于显式地在每个记录上使用命令3。不能在One2many上使用。不能在create()中使用。

所以我觉得你应该写:

代码语言:javascript
复制
>>> models.execute_kw(db, uid, password, 'product.template', 
                        'write', [[125], {'route_ids': [[5, 0, 0]]}])    
True

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28612933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档