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 

odoo/addons/base/models/ir_model.py
for model in self:
            table = self.env[model.model]._table
            kind = tools.table_kind(self._cr, table)
            if kind == 'v':
                self._cr.execute('DROP VIEW "%s"' % table)
            elif kind == 'r':
                self._cr.execute('DROP TABLE "%s" CASCADE' % table)
        return True
    @api.multi
    def unlink(self):
        
        if not self._context.get(MODULE_UNINSTALL_FLAG):
            for model in self:
                if model.state != 'manual':
                    raise UserError(_("Model '%s' contains module data and cannot be removed.") % model.name)
                
                model.field_id._prepare_update()
        self._drop_table()
        res = super(IrModel, self).unlink()
        
        
        if not self._context.get(MODULE_UNINSTALL_FLAG):
            
            self.pool.setup_models(self._cr)
        return res
    @api.multi
    def write(self, vals):