diff --git a/odoo/addons/base/models/ir_fields.py b/odoo/addons/base/models/ir_fields.py index a1c4c79b0d9..04c23ae1020 100644 --- a/odoo/addons/base/models/ir_fields.py +++ b/odoo/addons/base/models/ir_fields.py @@ -321,6 +321,8 @@ class IrFieldsConverter(models.AbstractModel): RelatedModel = self.env[field.comodel_name] if subfield == '.id': field_type = _(u"database id") + if isinstance(value, str) and not self._str_to_boolean(model, field, value)[0]: + return False, field_type, warnings try: tentative_id = int(value) except ValueError: tentative_id = value try: @@ -335,6 +337,8 @@ class IrFieldsConverter(models.AbstractModel): {'moreinfo': action}) elif subfield == 'id': field_type = _(u"external id") + if not self._str_to_boolean(model, field, value)[0]: + return False, field_type, warnings if '.' in value: xmlid = value else: @@ -343,6 +347,8 @@ class IrFieldsConverter(models.AbstractModel): id = self.env['ir.model.data'].xmlid_to_res_id(xmlid, raise_if_not_found=False) or None elif subfield is None: field_type = _(u"name") + if value == '': + return False, field_type, warnings flush() ids = RelatedModel.name_search(name=value, operator='=') if ids: