0

継承したモデルからフィールドを取得しようとしています。

from openerp import api, fields, models

class Calculate(models.Model):
    _inherit = 'sale.order.line'
    company_discount = fields.Float(string='Company Discount')
    customer_discount = fields.Float(string='Customer Discount')
    company_price_amount_total = fields.Monetary(string='Price after discount', store=True, readonly=True, compute='_calc_company_price', track_visibility='always')
    customer_price_amount = fields.Monetary(string='Customer price', store=True, readonly=True, compute='_calc_customer_price', track_visibility='always')
    transport  = fields.Float(string='Transport')
    transport_amount = fields.Monetary(string='Transport amount', store=True, readonly=True, compute='_calc_transport', track_visibility='always')

    @api.depends('order_line.price_unit', 'customer_discount')
    def _calc_customer_price(self):
        self.customer_price_amount = self.order_line.price_unit * ((100 - self.customer_discount) / 100)

    @api.depends('order_line.price_unit', 'company_discount', 'customer_discount')
    def _calc_company_price(self):
         self.company_price_amount_total = self.order_line.price_unit * ((100 - self.customer_discount) / 100) * ((100 - self.company_discount) / 100)

    @api.depends('customer_price_amount', 'transport')
    def _calc_transport(self):
        self.transport_amount = self.customer_price_amount * ((100 - self.transport) / 100)

エラーが発生していますNameError: global name 'price_unit' is not defined

フィールドは私が継承price_unitしているモデルにあります。sale.order.line

アップデート:

私は両方を試しましprice_unitsale.order.line.price_unitが、同じ結果でした。

4

2 に答える 2

2

毎回 order_line.price_unit を書く必要はありませんが、price_unitだけです

于 2016-02-18T15:00:56.267 に答える
1

py に継承を追加することは、正しい継承を行うための 2 つの手順のうちの 1 つです。あなたが欠けていると思うのは、それをopenerp .py ファイルに追加することです。

"depends" 属性で、sale.order.line 宣言が含まれているため、継承するモジュールとして "sale" を追加します。

于 2016-02-19T11:21:57.127 に答える