【问题标题】:How to change sum headers in group_by of a tree view into min?如何将树视图的 group_by 中的总和标题更改为 min?
【发布时间】:2021-06-01 19:58:02
【问题描述】:

我需要删除它自动为我计算的某些列的总和标题。

我在不继承任何视图的情况下创建了一个新的树视图,并且具有如下字段:

. . .
<field name="model">my.purchase.order.line.inherit</field>
. . .
  . . .
  <field name="product_uom_qty"/>
  <field name="price_unit"/>
  . . .
  <field name="price_subtotal" widget="monetary"/>
  . . .
. . .

主模型来自purchase.order.line

现在有了 CZoellner 的回答,我的模型现在是这样的。

class purchase_order_line_inherit(models.Model):
    _name = "my.purchase.order.line.inherit"
    _inherit = "purchase.order.line"

    product_uom_qty = fields.Float(group_operator="min")

我认为系统只是为我计算了它们,但重点是我想将其从 sum 更改为 min

我见过this,但我的字段(如前所示)没有 sum 属性。我也尝试过this 之类的方法,但总和标题仍然存在。

我怎样才能完成这样的任务?

【问题讨论】:

    标签: odoo odoo-14


    【解决方案1】:

    您可以在字段定义中定义它。在您的情况下,它将是:

    my_field = fields.Float(compute="_compute_my_field", group_operator="min")
    

    可能的运算符可以在the documentation中找到。

    group_operator (str) – read_group() 使用的聚合函数 在此字段上进行分组。

    支持的聚合函数有:

    array_agg : 值,包括空值,连接到一个数组中

    count : 行数

    count_distinct : 不同行数

    bool_and : 如果所有值都为真,则为真,否则为假

    bool_or : 如果至少一个值为真,则为真,否则为假

    max : 所有值的最大值

    min : 所有值的最小值

    avg : 所有值的平均值(算术平均值)

    sum : 所有值的总和

    【讨论】:

    • 我试过这个方法,但是不行。总和标题仍然存在并对值求和,而不是使用 min。场上好像什么都没发生。我还必须补充一点,我使用的模型来自“purchase.order.line”,而不是我自己的。
    • 您能否将您的“新”代码添加到您的问题中?很难理解你到底做了什么。
    • 只需删除 _name 行,因为您正在创建一个新模型,而不是通过具有不同的 _inherit_name 值来扩展/更改一个模型。
    • 但我不想扩展 purchase.order.line 模型,因为有多个视图正在使用具有正确总和标题的模型。因此,我只想更改此视图中的总和标题,而不会影响使用此特定模型的其他视图。这就是为什么我打算创建一个新的。
    • 啊好吧,那我的解决方案不是你需要的。
    猜你喜欢
    • 2011-07-13
    • 1970-01-01
    • 2021-04-25
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多