我试图从另一个模型中获取字段,然后对它们执行一些操作,逻辑上没有问题,但是当方法运行时,我得到了这个错误
psycopg2.DataError: invalid input syntax for type double precision: "1.007 t"
这些都是我所做的
class uom_custom(models.Model):
_inherit = 'product.template'
uom_qty = fields.Char(store=True,compute='get_qty')
@api.depends('qty_available')
def get_qty(self):
uoms=self.env['uom.uom'].search(['&',('category_id', '=', self.uom_id.category_id.id),('show_qty','=',True)])
if uoms.uom_type == 'bigger':
self.uom_qty= str(str(self.qty_available / uoms.factor_inv) + ' ' + uoms.name)
elif self.uom_type =='smaller':
self.uom_qty= str(self.qty_available * uoms.factor_inv) + ' ' + uoms.name
else:
self.uom_qty= str(self.qty_available) + ' ' + uoms.name
return self.uom_qty
那么,如何显示数学运算的值及其旁边的计量单位名称呢 提前谢谢
错误表明数据库中的列定义为双精度。您确定重新启动了Odoo并更新了模块吗
在你的计算方法中有一些常见的错误。首先,我不能经常重复它:试着坚持Odoo命名准则,并将其命名为
compute_uom_qty
。第二,如果没有特殊的装饰器,一个计算方法可以并且将被多个记录调用,所以循环该记录。第三:搜索uom.uom
,这也可能导致多个记录。因此,要么将搜索限制在一条记录上,要么/并执行检查是否找到了某些内容uoms.name
可能会导致单音错误。最后:您不必在计算方法中返回任何内容相关问题 更多 >
编程相关推荐