【问题标题】:How do I update the value in related fields using onchange in odoo 10?如何使用 odoo 10 中的 onchange 更新相关字段中的值?
【发布时间】:2018-02-06 07:07:55
【问题描述】:

我现在正在努力更新我的字段,因为它与另一个字段相关。在我更改相关字段的值并保存它时,它会恢复到原来的值。为什么?我可以更新相关字段吗?任何人都可以帮助。我是odoo的新手,非常感谢。

这就是我的工作。

ret_condition_id = fields.Many2one('asset.state', string="Condition", 
    related='ret_asset_id.asset_condition', store=True)

如果我将 ret_condition_id 更改为新值,请在保存后。它会恢复到原来的值。

【问题讨论】:

  • 原始值是什么False 是你Many2one 字段有一个值,因为相关字段保存更改但只有Many2one 字段设置了一个值。但您不能从相关字段创建新记录。只有delegate = True
  • 我更新了我的帖子。谢谢。无论如何,委托的确切含义是什么?
  • ret_asset_id的值是多少
  • ret_asset_id .asset_condition = 'new' 我想把它改成'used'
  • 检查此链接stackoverflow.com/questions/28834086/…,如果store=True 不起作用。

标签: python-2.7 field odoo odoo-10


【解决方案1】:

相关字段始终基于关系中的值,如果您更改关系,其值将重新计算,如果您手动更改相关字段的值,它将在您保存更改时重新计算。

您应该为您的目的使用另一个字段。

【讨论】:

  • 我已经解决了这个问题,我使用了不同的方法。谢谢。
  • 如果我的回答对您没有帮助,请分享为您的解决方案,它可以帮助其他人
【解决方案2】:

这是我为他人着想的问题的解决方案。 我有一个按钮接收,每次接收到的状态都会更新数据。

return_ids = fields.One2many('asset.management.return.lines', 'ret_line_id', string="Asset")

@api.multi
    def button_received(self):
        self.state = 'received'

    for x in self.return_ids:
        holder = self.env['asset.asset'].search([('serial', '=', x.ret_serial_id)])
        for i in holder:
            i.write({'asset_condition': x.ret_condition_id.id})
            print 'pumasok return'

我创建了一个 for 循环,它将扫描我的 assets.asset 模块上的所有串行数据,这将等于我的数据,然后覆盖字段asset_condition 上的数据等于我的当前数据

对不起我的英语不好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多