我如何从 odoo 上的 Many2One 关系中获取属性?
How can i get attributes from a Many2One relationship on odoo?
我正在做一些学校项目,我想从具有 Many2One 关系的 class 中获取属性,更具体地说,我想从另一个 [=22= 中获取 preu_lloguer ] 在 class Factura.
这里是 class,我想从另一个地方获取值并放在 "preu" 上:
class Factura(models.Model):
_name = 'carplus.factura'
client_id = fields.Many2one("carplus.client", string="Client", required=True)
vehicle_id = fields.Many2one("carplus.cotxe", string="Vehicle", required=True)
renting_id = fields.Many2one("carplus.rentinglloguer", string="Contracte", required=True)
preu = fields.Float(string="Preu")
data_factura = fields.Date(string="Data de factura", required=True)
这里 class 我需要的属性在哪里:
class Cotxe(models.Model):
_name = 'carplus.cotxe'
marca_id = fields.Many2one("carplus.cotxemarca", string="Marca", required=True)
model = fields.Char(string="Model", required=True)
color = fields.Char(string="Color")
name = fields.Char(string="Matricula", required=True)
data_compra = fields.Date(string="Data de compra", required=True)
places = fields.Integer(string="Número de plaçes", required=True)
tipus_id = fields.Many2one("carplus.cotxetipus", string="Tipus", required=True)
combustible_id = fields.Many2one("carplus.cotxecombustible", string="Combustible", required=True)
preu_lloguer = fields.Float(string="Preu lloguer", required=True)
preu_renting = fields.Float(string="Preu renting", required=True)
PD:抱歉英语不好
你可以这样称呼它:
class Factura(models.Model):
_name = 'carplus.factura'
client_id = fields.Many2one("carplus.client", string="Client", required=True)
vehicle_id = fields.Many2one("carplus.cotxe", string="Vehicle", required=True)
renting_id = fields.Many2one("carplus.rentinglloguer", string="Contracte", required=True)
preu = fields.Float(string="Preu")
data_factura = fields.Date(string="Data de factura", required=True)
preu_lloguer = fields.Many2one("carplus.cotxe", string=" preu lloguer", required=True)
这实际上取决于您希望如何查看信息。相关字段是否应该是当前模型上的字段?如果是,请使用相关字段。
preu = fields.Float(related='vehicle_id.preu_lloguer')
如果您只需要在方法中引用属性,请使用以下方法
vehicle_id.preu_lloguer
如果您需要确定要抢哪个不同的价格。您将需要使用计算字段。
preu = fields.Float(compute='_compute_price')
def _compute_price(self):
...
set code here
...
这应该可以帮助您度过任何情况。
我正在做一些学校项目,我想从具有 Many2One 关系的 class 中获取属性,更具体地说,我想从另一个 [=22= 中获取 preu_lloguer ] 在 class Factura.
这里是 class,我想从另一个地方获取值并放在 "preu" 上:
class Factura(models.Model):
_name = 'carplus.factura'
client_id = fields.Many2one("carplus.client", string="Client", required=True)
vehicle_id = fields.Many2one("carplus.cotxe", string="Vehicle", required=True)
renting_id = fields.Many2one("carplus.rentinglloguer", string="Contracte", required=True)
preu = fields.Float(string="Preu")
data_factura = fields.Date(string="Data de factura", required=True)
这里 class 我需要的属性在哪里:
class Cotxe(models.Model):
_name = 'carplus.cotxe'
marca_id = fields.Many2one("carplus.cotxemarca", string="Marca", required=True)
model = fields.Char(string="Model", required=True)
color = fields.Char(string="Color")
name = fields.Char(string="Matricula", required=True)
data_compra = fields.Date(string="Data de compra", required=True)
places = fields.Integer(string="Número de plaçes", required=True)
tipus_id = fields.Many2one("carplus.cotxetipus", string="Tipus", required=True)
combustible_id = fields.Many2one("carplus.cotxecombustible", string="Combustible", required=True)
preu_lloguer = fields.Float(string="Preu lloguer", required=True)
preu_renting = fields.Float(string="Preu renting", required=True)
PD:抱歉英语不好
你可以这样称呼它: class Factura(models.Model): _name = 'carplus.factura'
client_id = fields.Many2one("carplus.client", string="Client", required=True)
vehicle_id = fields.Many2one("carplus.cotxe", string="Vehicle", required=True)
renting_id = fields.Many2one("carplus.rentinglloguer", string="Contracte", required=True)
preu = fields.Float(string="Preu")
data_factura = fields.Date(string="Data de factura", required=True)
preu_lloguer = fields.Many2one("carplus.cotxe", string=" preu lloguer", required=True)
这实际上取决于您希望如何查看信息。相关字段是否应该是当前模型上的字段?如果是,请使用相关字段。
preu = fields.Float(related='vehicle_id.preu_lloguer')
如果您只需要在方法中引用属性,请使用以下方法
vehicle_id.preu_lloguer
如果您需要确定要抢哪个不同的价格。您将需要使用计算字段。
preu = fields.Float(compute='_compute_price')
def _compute_price(self):
...
set code here
...
这应该可以帮助您度过任何情况。