Odoo中文网|Odoo实施培训

标题: 修改保存后stock_inventory状态错误 [打印本页]

作者: agilit_ch    时间: 2016-1-10 03:12
标题: 修改保存后stock_inventory状态错误
本帖最后由 agilit_ch 于 2016-1-9 14:19 编辑

我用的是英文版openerp7.0,

1) 在warehouse中的physical inventories, 我创建(create)一个新的stock_inventory,命名为Test,状态为draft,保存。

2) 我打开Test,修改(Edit)其中的stock_inventory_line信息,如product或serial number,并保存。

这时我发现stock inventory的状态从高亮Draft(蓝色)变为非高亮,也就是不再是Draft。 因为只有valide才能改变状态(Draft-->Done),查看相应的stock_inventory数据库表,

发现与stock_inventory对应的state 值被清空,
在调试跟踪时发现,从客户端发给server的包请求arg(参数中) {'state':False}, 而不是{'state':'draft'}这是为什么呢?








作者: agilit_ch    时间: 2016-1-12 09:25
经过2个小时的调试,终于找到原因,在此跟大家分享。
原因:stock_inventory_line中的state的定义为ralated字段,它指向父表stock_inventory的state字段,
原理:修改子表的related字段值,会自动修改父表的相应的值

所以当子表的stock_inventory_line的state值改变时,openerp7.0会自动修改父表stock_inventory的state。当我们单击Add an Item加入一条stock_inventory_line时,此时它的state为空,也就是{“state”:False},这时保存(save),根据如上的原理,openerp就把False写入到stock_inventory的state字段中。

解决方法:把stock_inventory_line的state从field.related()修改为field.char()





欢迎光临 Odoo中文网|Odoo实施培训 (http://www.chinaodoo.net/) Powered by Discuz! X3.2