Impacted versions: all

On the model "ir.model.field" there is a field called "copy" : https://github.com/odoo/odoo/blob/master/odoo/addons/base/models/ir_model.py#L322

This name conflict with the method "copy" that exist browse record
https://github.com/odoo/odoo/blob/master/odoo/models.py#L4203

This make impossible to use the method copy on ir.model.field
And also raise warning when we make an inherits of the class ir.model.field (https://github.com/odoo/odoo/blob/master/odoo/models.py) as the field conflict with the method name

@odony @rco-odoo 

""" Reflect the given model and return the corresponding record. Also
            create entries in 'ir.model.data'.
        """
        cr = self.env.cr
        
        params = self._reflect_model_params(model)
        query_update(cr, self._table, params, ['model'])
        if not cr.rowcount:
            query_insert(cr, self._table, params)
        record = self.browse(cr.fetchone())
        self.pool.post_init(record.modified, set(params) - {'model', 'state'})
        if model._module == self._context.get('module'):
            
            xmlid = 'model_' + model._name.replace('.', '_')
            cr.execute("SELECT * FROM ir_model_data WHERE name=%s AND module=%s",
                       (xmlid, self._context['module']))
            if not cr.rowcount:
                cr.execute(""" INSERT INTO ir_model_data (module, name, model, res_id, date_init, date_update)
                               VALUES (%s, %s, %s, %s, (now() at time zone 'UTC'), (now() at time zone 'UTC')) """,
                           (self._context['module'], xmlid, record._name, record.id))
        return record
    @api.model
    def _instanciate(self, model_data):
        """ Return a class for the custom model given by parameters ``model_data``. """
        class CustomModel(models.Model):