как использовать связанный attrubite в odoo для вывода значения в строках таблицы - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь отобразить значение, которое существует в поле «Цена за минуту», которое также существует в модуле, этот модуль наследует от sale.order, поле действительно содержит ненулевое значение, однако я не могу отобразитьэто в столбце «Prix par minute» в таблице поля order_line sale.order, я всегда нахожу поля в столбце «Цена за минуту» с нулевыми значениями!Вот код Python, который я использую:

#-----------------------------------------------------
class ClassSaleOrder(models.Model):
    _inherit = 'sale.order'
    ratio = fields.Float(string='Ratio de chutes')
    largeur_initial = fields.Float()
    longueur_initial = fields.Float()
    surface_initiale = fields.Float(compute='SetSurfaceUnitiale', readonly=True)
    surface_utile = fields.Float()
    matiere = fields.Many2one('module.config2')
    procede = fields.Many2one(related='matiere.procede', string='Procede')
    epaisseur = fields.Many2one(related='matiere.epaisseur', string='Epaisseur')
    prix_par_minute = fields.Float(related='matiere.prix_par_minute', compute='_compute_prix', store=True)
    temps_de_decoupes = fields.Integer(compute='SetTempsDeDecoupes', string='Temps de decoupes (min)')

    @api.depends('largeur_initial', 'longueur_initial')
    def SetSurfaceUnitiale(self):
        if (self.largeur_initial != 0 and self.longueur_initial != 0):
            self.surface_initiale = self.largeur_initial * self.longueur_initial

    @api.depends('order_line.temps_de_decoupe')
    def SetTempsDeDecoupes(self):
        for record in self:
            record.temps_de_decoupes = 0
            for line in record.order_line:
                record.temps_de_decoupes += line.temps_de_decoupe
#---------------------------------------------
class ClasSaleOrderLine(models.Model):
    _inherit = 'sale.order.line'
    temps_de_decoupe = fields.Integer(string='Temps de decoupe (min)')
    # prix_de_decoupe = fields.Float(string='Prix de decoupe')
    prix_de_decoupe = fields.Float(compute='SetPrixDeDecoupe', string='Prix de decoupe')

    ref = fields.Many2one('sale.order')
    prix_par_minute = fields.Float(related="ref.prix_par_minute")

    @api.depends('temps_de_decoupe')
    def SetPrixDeDecoupe(self):
        for record in self:
            record.prix_de_decoupe = 99*record.temps_de_decoupe # OK
            # record.prix_de_decoupe = record.prix_par_minute*record.temps_de_decoupe #NO 

----------------------------------------------------

Вот скриншот соответствующего вида: введите описание изображения здесь

...