如何从Odoo中的另一个模型中获取模型的字段值?

时间:2015-04-15 02:37:30

标签: odoo openerp-8 odoo-8

我很难理解如何从其他模型中获取字段值。

我通过制作自定义模块在res.partner模块中添加了一个自定义字段:

class custom_partner_fields(osv.osv):
_inherit = 'res.partner'

_columns = {
'RTN': fields.char('RTN Numerico'),
}

_defaults = {

}
custom_partner_fields()

然后我在创建新客户时为表单视图创建自定义xml,现在我可以在客户创建表单中看到RTN字段。

现在我想在制作新的报价/销售订单时出现这个新字段。 当我选择我的客户时,我希望它能够获得它的价值(我相信onchange功能应该使用但不知道如何使用它!),所以我所做的是为它创建一个自定义模块:

class custom_saleorder_fields(osv.osv):

_inherits = 'sale.order'

_columns = {
'partner_rtn': fields.char('RTN'),
}
custom_saleorder_fields()

我认为我需要使用类似函数或关系字段的东西,但我已经尝试过但还没有工作。

然后,我在销售订单表单视图中创建了自定义视图,并添加了我的partner_field

现在,我想知道如何根据所选客户从RTN访问res.partner模块中的特定custom_saleorder_fields值。

另一方面,此新值的主要目的是显示在销售工作流程中,并将其打印在报告中。

2 个答案:

答案 0 :(得分:1)

您需要在销售订单模型中添加关系字段。 在应用代码之前,您应该参考odoo的文档,

Odoo Field Doc中,您将了解fields.related的工作原理。

class custom_saleorder_fields(osv.osv):
    _inherits = 'sale.order'

    _columns = {
        'partner_rtn': fields.related('partner_id','RTN',type="char",relation="res.partner",string="RTN",store=True,readonly=True),
    }
custom_saleorder_fields()

答案 1 :(得分:1)

通过相关字段在modelB中引入modelA字段 例如,在另一个模型中使用many2one字段:

来自openerp导入模型,字段,api

class partsproviderclass(models.Model):

_name='partsprovider.vechicle'
#_rec_name='parts_provider'

id=fields.Integer()
parts_provider=fields.Many2many('supplier.car', string="Parts provider")
parts_name=fields.Many2many('selection.selection',string="Parts Name")
parts_price=fields.Float(string="Price of the Part")

class selectionsxample(models.Model):     _name = 'selection.selection'

name=fields.Char('name',required=True) 
value=fields.Char('value',required=True)
相关问题