我在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
我将其更改为的选择不为空,并且它的所有数据在列表视图中都显示正常。这是一个错误,还是我做错了什么?
答案 0 :(得分:1)
好的,我发现了问题。这实际上是观点中的一个问题......
我在另一个标签上进行的修改中不小心复制并粘贴了uom_class的声明。所以我的变量被列出两次。 Odoo看到它正在被改变,但我想它并没有很好地处理它有两个完全相同的领域。
一个非常愚蠢的错误。对于那些浪费时间的人抱歉。
答案 1 :(得分:-1)
尝试:
print self.uom_class['test']