Как получить значение поля из модели из другой модели в Odoo?

Мне сложно понять, как получить значения полей из другой модели.

Я добавил настраиваемое поле в модуль 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 в зависимости от выбранного клиента.

С другой стороны, основная цель этого нового значения - отобразить в рабочем процессе продажи, а также распечатать его в отчете.


person Armando    schedule 15.04.2015    source источник


Ответы (2)


Вам необходимо добавить реляционное поле в модель заказа на продажу. Перед применением кода вы должны обратиться к документации odoo,

В Odoo Field Doc вы узнаете, как поля. сопутствующие работы.

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()
person Emipro Technologies Pvt. Ltd.    schedule 15.04.2015
comment
Спасибо за вашу помощь .... у меня это сработало. Теперь я знаю, как использовать отношения в odoo. - person Armando; 15.04.2015

перенесите поля modelA в modelB с помощью реляционных полей, например, используйте поле many2one в другой модели:

из моделей импорта openerp, полей, api

класс 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)
person annadurai    schedule 30.05.2016