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 /docs | |
| parent | 1979b1403adeb437831a1a8885353e158ec9ad55 (diff) | |
Fixed #35103 -- Used provided error code and message when fields is set without a condition on UniqueConstraint.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/ref/models/constraints.txt | 52 | ||||
| -rw-r--r-- | docs/releases/5.2.txt | 5 |
2 files changed, 41 insertions, 16 deletions
diff --git a/docs/ref/models/constraints.txt b/docs/ref/models/constraints.txt index 7dfc3b7d28..c1f140c265 100644 --- a/docs/ref/models/constraints.txt +++ b/docs/ref/models/constraints.txt @@ -282,27 +282,47 @@ PostgreSQL 15+. .. attribute:: UniqueConstraint.violation_error_code -The error code used when ``ValidationError`` is raised during -:ref:`model validation <validating-objects>`. Defaults to ``None``. +The error code used when a ``ValidationError`` is raised during +:ref:`model validation <validating-objects>`. + +Defaults to :attr:`.BaseConstraint.violation_error_code`, when either +:attr:`.UniqueConstraint.condition` is set or :attr:`.UniqueConstraint.fields` +is not set. + +If :attr:`.UniqueConstraint.fields` is set without a +:attr:`.UniqueConstraint.condition`, defaults to the :attr:`Meta.unique_together +<django.db.models.Options.unique_together>` error code when there are multiple +fields, and to the :attr:`.Field.unique` error code when there is a single +field. + +.. versionchanged:: 5.2 -This code is *not used* for :class:`UniqueConstraint`\s with -:attr:`~UniqueConstraint.fields` and without a -:attr:`~UniqueConstraint.condition`. Such :class:`~UniqueConstraint`\s have the -same error code as constraints defined with :attr:`.Field.unique` or in -:attr:`Meta.unique_together <django.db.models.Options.constraints>`. + In older versions, the provided + :attr:`.UniqueConstraint.violation_error_code` was not used when + :attr:`.UniqueConstraint.fields` was set without a + :attr:`.UniqueConstraint.condition`. ``violation_error_message`` --------------------------- .. attribute:: UniqueConstraint.violation_error_message -The error message used when ``ValidationError`` is raised during -:ref:`model validation <validating-objects>`. Defaults to -:attr:`.BaseConstraint.violation_error_message`. +The error message used when a ``ValidationError`` is raised during +:ref:`model validation <validating-objects>`. + +Defaults to :attr:`.BaseConstraint.violation_error_message`, when either +:attr:`.UniqueConstraint.condition` is set or :attr:`.UniqueConstraint.fields` +is not set. + +If :attr:`.UniqueConstraint.fields` is set without a +:attr:`.UniqueConstraint.condition`, defaults to the :attr:`Meta.unique_together +<django.db.models.Options.unique_together>` error message when there are +multiple fields, and to the :attr:`.Field.unique` error message when there is a +single field. + +.. versionchanged:: 5.2 -This message is *not used* for :class:`UniqueConstraint`\s with -:attr:`~UniqueConstraint.fields` and without a -:attr:`~UniqueConstraint.condition`. Such :class:`~UniqueConstraint`\s show the -same message as constraints defined with -:attr:`.Field.unique` or in -:attr:`Meta.unique_together <django.db.models.Options.constraints>`. + In older versions, the provided + :attr:`.UniqueConstraint.violation_error_message` was not used when + :attr:`.UniqueConstraint.fields` was set without a + :attr:`.UniqueConstraint.condition`. diff --git a/docs/releases/5.2.txt b/docs/releases/5.2.txt index 5c5020a3f4..eabc27c277 100644 --- a/docs/releases/5.2.txt +++ b/docs/releases/5.2.txt @@ -358,6 +358,11 @@ Miscellaneous * ``HttpRequest.accepted_types`` is now sorted by the client's preference, based on the request's ``Accept`` header. +* :attr:`.UniqueConstraint.violation_error_code` and + :attr:`.UniqueConstraint.violation_error_message` are now always used when + provided. Previously, these were ignored when :attr:`.UniqueConstraint.fields` + were set without a :attr:`.UniqueConstraint.condition`. + * The :func:`~django.template.context_processors.debug` context processor is no longer included in the default project template. |
