Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 5792|回复: 0
打印 上一主题 下一主题

Odoo8使用onchange改变one2many类型的值

[复制链接]

17

主题

19

帖子

75

积分

注册会员

Rank: 2

积分
75
跳转到指定楼层
楼主
发表于 2015-8-27 14:30:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

因实际业务需求,在主表的栏位变更时,需要重新刷新明细的数据。

使用odoo new api方式来处理此操作时,开始发现明细数据总是无法写入,经过查询相关资料,最后实现成功,现记录如下:

[python] view plaincopy
  • class Order(models.Model):  
  •     name="mymodule.order"  
  •     line = fields.One2many('mymodule.line',  
  •                                 inverse_name="order_id", string="Lines")  
  •     partner_id = fields.....  

假如有一个这样的定义,改变partner_id时,需要刷新line字段的值。

通过如下方式实现:
[python] view plaincopy
  • @api.onchange('partner_id')   
  • def _onchange_equipment(self):  
  •     lines =[]  
  •     for val in self.bogus_values:  
  •         line_item = {  
  •                       'attr1': val.name,  
  •                       'attr2': val.a1,  
  •                       ...                              
  •                 }  
  •         lines += [line_item]  
  •     self.update({'line': lines})

by: vnsoft


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-4-19 19:39 , Processed in 0.011171 second(s), 9 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表