summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/db/models/constraints.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/django/db/models/constraints.py b/django/db/models/constraints.py
index 3859a60e2f..788e2b635b 100644
--- a/django/db/models/constraints.py
+++ b/django/db/models/constraints.py
@@ -690,11 +690,19 @@ class UniqueConstraint(BaseConstraint):
queryset = queryset.exclude(pk=model_class_pk)
if not self.condition:
if queryset.exists():
- if self.fields:
- # When fields are defined, use the unique_error_message() for
- # backward compatibility.
+ if (
+ self.fields
+ and self.violation_error_message
+ == self.default_violation_error_message
+ ):
+ # When fields are defined, use the unique_error_message() as
+ # a default for backward compatibility.
+ validation_error_message = instance.unique_error_message(
+ model, self.fields
+ )
raise ValidationError(
- instance.unique_error_message(model, self.fields),
+ validation_error_message,
+ code=validation_error_message.code,
)
raise ValidationError(
self.get_violation_error_message(),