diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 0afc2a0c92..4d17c25f0f 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -217,12 +217,7 @@ class Field(RegisterLookupMixin): self._validators = list(validators) # Store for deconstruction later - messages = {} - for c in reversed(self.__class__.__mro__): - messages.update(getattr(c, "default_error_messages", {})) - messages.update(error_messages or {}) self._error_messages = error_messages # Store for deconstruction later - self.error_messages = messages def __str__(self): """ @@ -669,6 +664,14 @@ class Field(RegisterLookupMixin): """ return value + @cached_property + def error_messages(self): + messages = {} + for c in reversed(self.__class__.__mro__): + messages.update(getattr(c, "default_error_messages", {})) + messages.update(self._error_messages or {}) + return messages + @cached_property def validators(self): """