Reference field type in Odoo
The main use of this field type is to make a reference with a specific model and then a specific recordset of this model.
By using the reference field type, the first thing you will choose is the model:
And by choosing the model you will be asked the choose one of the recordset of the chosen Model
Structure of the reference field in Odoo (New API)
A field of type reference is declared as below :
ref = fields.Reference(string='Reference', selection='_get_document_types')
Selection attribute : We define the method that will determine which models will be showed, and from which we can choose
In our example we used this method :
@api.model def _get_document_types(self): records = self.env['ir.model'].search(['|', ('model', '=', 'sale.order'), '|', ('model', '=', 'account.invoice'), '|', ('model', '=', 'stock.picking'), ('model', '=', 'purchase.order')]) return [(record.model, record.name) for record in records] + [('', '')]
In this example, we specified that we want to choose from [ Sale Order, Account Invoice, Stock Picking, Purchase Order ] models
Hope it was useful for you
Good luck !!