Odoo - one2many总和

时间:2017-07-19 10:53:17

标签: for-loop sum openerp one2many

我正在处理简单的项目,但我遇到了问题。我想在我的one2many字段中总结一列如何才能做到这一点?

from openerp import models, fields, api, _


class Fam(models.Model):
    _name = 'fam'

    fm_id = fields.Many2one('fam')
    mileage = fields.Float(string="Mileage", required=True)
    fueled = fields.Float(string="Fueled", required=True)
    perliter = fields.Float(string='Price per liter', required=True)


class Car2(models.Model):
    _name = 'car2'
    _description = 'Car record'
    _log_access = True

    name = fields.Char(
        string='Name',
        required=True
    )
    mile = fields.One2many(
        "fam",
        "fm_id",
        string='Mileage, Fuel and cost perliter',
        required=True
    )
    average = fields.Float(
        string='Average'
    )
    combustion = fields.Float(
        string='Combustion'
    )

1 个答案:

答案 0 :(得分:3)

您可以通过以下示例来实现:

for line in self.one2many_field_name:
    total += line.field_name_in_one2many_table

# in your case
total_mileage = 0.0
total_fueled = 0.0
total_perliter = 0.0  
for line in self.mile:
    total_mileage += line.mileage
    total_fueled += line.fueled
    total_perliter += line.perliter