【问题标题】:Odoo - add "%" next to float field in tree viewOdoo - 在树视图中的浮动字段旁边添加“%”
【发布时间】:2020-11-03 01:53:57
【问题描述】:

如何在以下字段的树视图列中的值旁边添加“%”:

rec.reserved_qty_per = round(rec.sum_reserved_qty / rec.sum_dmd_qty * 100)

当我以前添加 (+ "%") 时,它给了我一个错误,它不能在 float 和 str 字段之间混合。

这是我的代码:

    sum_dmd_qty = fields.Float(compute='calculate_dmd_qty', string='Total Ordered Quantity', digits=(12,0))
    sum_reserved_qty = fields.Float(compute='calculate_reserved_qty', string='Total Ready Quantity', digits=(12,0))
    reserved_qty_per = fields.Float(compute='_compute_percentage', string='Ready (%)', digits=(12,0))

    @api.depends('sum_reserved_qty', 'sum_dmd_qty')
    def _compute_percentage(self):
        for rec in self:
            if rec.sum_dmd_qty:
                rec.reserved_qty_per = round(rec.sum_reserved_qty / rec.sum_dmd_qty * 100)

【问题讨论】:

  • 添加另一个字段作为Char字段并使用compute附加%,或者在前端使用jquery处理。
  • 嗨@TerrencePoe,请您帮我提供示例代码或Reddit上的原始代码,我将不胜感激

标签: python odoo


【解决方案1】:

最简单的方法是将reserved_qty_per 更改为Char 字段。

    reserved_qty_per_chr = fields.Char(compute='_compute_percentage', string='Ready (%)')

    @api.depends('sum_reserved_qty', 'sum_dmd_qty')
    def _compute_percentage(self):
        for rec in self:
            if rec.sum_dmd_qty:
                qty = round(rec.sum_reserved_qty / rec.sum_dmd_qty * 100)
                rec.reserved_qty_per = "{0} {1}".format(qty,"%")

【讨论】:

  • 亲爱的@Terrence,你能帮忙我如何将此字段添加到销售订单树视图中,因为现在我将它添加到采摘树视图中
  • 您必须添加,store=true 然后,在销售订单链接中添加另一个相关字段。你可以看到this
  • 谢谢,请问您的示例中“partner_id”的替换是什么?
  • 简而言之,您可以从 m2o 字段中获取信息。例如,sale order 有一个 m2o 字段product_id,您可以通过相关 attr price = field.float(related='product_id.price') 获取产品价格。字段的名称和类型必须相同。
猜你喜欢
  • 2021-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多