diff options
| author | gabn88 <gerben_m88@hotmail.com> | 2024-01-11 17:43:52 +0100 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2024-10-10 09:20:37 +0200 |
| commit | e970bb7ca71c00594b42a024a15a8ac007cc2c7a (patch) | |
| tree | bc3178c664e587534a90c1b35f3d229bfc030380 /django | |
| parent | 1979b1403adeb437831a1a8885353e158ec9ad55 (diff) | |
Fixed #35103 -- Used provided error code and message when fields is set without a condition on UniqueConstraint.
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/constraints.py | 16 |
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(), |
