Odoo v9 - onchange没有看到变化字段的价值

时间:2016-09-16 07:20:54

标签: model openerp odoo-9

我在product.template中添加了一个名为uom_class的字段。当它发生变化时,我需要根据其值更改其他字段。不幸的是,Odoo将它视为空的,并且总是返回False。我不知道为什么。这是我的代码

class product_uom_class(models.Model):
    _inherits = {'product.uom.categ':'catid'}
    _name = 'productuom.class'
    catid = fields.Many2one('product.uom.categ', ondelete='cascade', required=True)
    test = fields.Boolean('isbool',default=True)
    # [...]

class ProductTemplate(models.Model):
    _inherit = 'product.template'
    uom_class = fields.Many2one(
        'productuom.class', 'Per Product UOM Conversion Class',
        required=False, help="Unit of Measure class for Per Product UOM")


@api.onchange('uom_class')
def onchange_uom_class(self):
    print self.list_price
    print self.uom_id.name
    print self.uom_class
    print self.uom_class.test
    print self.uom_class.catid.name

python命令行的结果是

24.0
Dozen(s)
productuom.class()
False
False

我将其更改为的选择不为空,并且它的所有数据在列表视图中都显示正常。这是一个错误,还是我做错了什么?

2 个答案:

答案 0 :(得分:1)

好的,我发现了问题。这实际上是观点中的一个问题......

我在另一个标签上进行的修改中不小心复制并粘贴了uom_class的声明。所以我的变量被列出两次。 Odoo看到它正在被改变,但我想它并没有很好地处理它有两个完全相同的领域。

一个非常愚蠢的错误。对于那些浪费时间的人抱歉。

答案 1 :(得分:-1)

尝试: print self.uom_class['test']