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:
            parent_names = list(self.env[model.model]._inherits)
            if parent_names:
                model.inherited_model_ids = self.search([('model', 'in', parent_names)])
    @api.depends()
    def _in_modules(self):
        installed_modules = self.env['ir.module.module'].search([('state', '=', 'installed')])
        installed_names = set(installed_modules.mapped('name'))
        xml_ids = models.Model._get_external_ids(self)
        for model in self:
            module_names = set(xml_id.split('.')[0] for xml_id in xml_ids[model.id])
            model.modules = ", ".join(sorted(installed_names & module_names))
    @api.depends()
    def _view_ids(self):
        for model in self:
            model.view_ids = self.env['ir.ui.view'].search([('model', '=', model.model)])
    @api.depends()
    def _compute_count(self):
        cr = self.env.cr
        for model in self:
            records = self.env[model.model]
            if not records._abstract:
                cr.execute('SELECT COUNT(*) FROM "%s"' % records._table)
                model.count = cr.fetchone()[0]
    @api.constrains('model')
    def _check_model_name(self):