【问题标题】:how to concatenate tow Values as strings into an odoo Char field?如何将两个值作为字符串连接到odoo Char字段中?
【发布时间】:2020-06-10 01:03:30
【问题描述】:

我正在尝试从另一个模型中获取字段,然后对它们进行一些操作,逻辑没有问题,但是当方法运行时出现此错误

psycopg2.DataError:双精度类型的无效输入语法:“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

那么我怎样才能在它旁边显示数学运算的值和uom名称 在此先感谢

【问题讨论】:

    标签: python python-3.x odoo


    【解决方案1】:

    错误表明数据库中的列被定义为双精度。您确定您已重新启动 Odoo 并更新了您的模块吗?

    您的计算方法中存在一些常见错误。首先,我不能经常重复它:尝试遵守 Odoo 命名准则并将其命名为 compute_uom_qty。其次,如果没有特殊的装饰器,一个计算方法可以并且会被多个记录调用,因此循环这些记录。第三:您搜索uom.uom 也可能导致多条记录。因此,要么将搜索限制为一条记录,要么/并检查是否找到了某些东西。 uoms.name 可能导致 SingletonError。最后:您不必在计算方法中返回任何内容。

    @api.depends('qty_available')
    def compute_uom_qty(self):
        for record in self:
            uoms = self.env['uom.uom'].search(
                [('category_id', '=', record.uom_id.category_id.id),
                ('show_qty','=',True)], limit=1)
            if uoms.uom_type == 'bigger':
                qty = record.qty_available / uoms.factor_inv
                record.uom_qty = "{} {}".format(qty, uoms.name)
            elif uoms.uom_type =='smaller':
                qty = record.qty_available * uoms.factor_inv
                record.uom_qty = "{} {}".format(qty, uoms.name)
            else:
                record.uom_qty = "{} {}".format(record.qty_available, uoms.name)
    

    【讨论】:

    • 谢谢您,亲爱的,您的代码和我的代码在新数据库中运行良好
    猜你喜欢
    • 2012-10-28
    • 2015-10-27
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 2013-08-30
    相关资源
    最近更新 更多