diff --git a/trytond/trytond/model/fields/char.py b/trytond/trytond/model/fields/char.py index 4998a8bb93..778d52cf2d 100644 --- a/trytond/trytond/model/fields/char.py +++ b/trytond/trytond/model/fields/char.py @@ -114,7 +114,8 @@ class Char(FieldTranslate): def _domain_column(self, operator, column): column = super()._domain_column(operator, column) - column = Coalesce(column, '') + if not self.required: + column = Coalesce(column, '') if self.search_unaccented and operator.endswith('ilike'): database = Transaction().database column = database.unaccent(column) diff --git a/trytond/trytond/model/modelsql.py b/trytond/trytond/model/modelsql.py index cff3412b05..576fe7e5d9 100644 --- a/trytond/trytond/model/modelsql.py +++ b/trytond/trytond/model/modelsql.py @@ -349,7 +349,9 @@ class ModelSQL(ModelStorage): rec_name_field = getattr(cls, cls._rec_name, None) if (isinstance(rec_name_field, fields.Field) and not hasattr(rec_name_field, 'set')): - column = Coalesce(Column(table, cls._rec_name), '') + column = Column(table, cls._rec_name) + if not rec_name_field.required: + column = Coalesce(column, '') if getattr(rec_name_field, 'search_unaccented', False): column = Index.Unaccent(column) cls._sql_indexes.add(