从继承模型 Odoo 9 获取字段
Get field from inherited model Odoo 9
我正在尝试从我继承的模型中获取字段。
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_unit
和 sale.order.line.price_unit
但结果相同。
你不需要每次都写 order_line.price_unit 而只是 price_unit
在py中添加继承是正确继承的两个步骤之一。我认为你缺少的是将它添加到 openerp.py 文件中。
在 "depends" 属性中添加 "sale" 作为您继承的模块,因为它包含 sale.order.line 声明。
我正在尝试从我继承的模型中获取字段。
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_unit
和 sale.order.line.price_unit
但结果相同。
你不需要每次都写 order_line.price_unit 而只是 price_unit
在py中添加继承是正确继承的两个步骤之一。我认为你缺少的是将它添加到 openerp.py 文件中。
在 "depends" 属性中添加 "sale" 作为您继承的模块,因为它包含 sale.order.line 声明。