Pārlūkot izejas kodu

Fixed #33724 -- Doc'd exclude argument changes in model validation.

Thanks אורי for the report.

Follow up to 1ea7e3157d1f9b4db71e768d75ea57e47dbd49f9.
Mariusz Felisiak 2 gadi atpakaļ
vecāks
revīzija
90aabd730a
2 mainītis faili ar 18 papildinājumiem un 8 dzēšanām
  1. 12 8
      docs/ref/models/instances.txt
  2. 6 0
      docs/releases/4.1.txt

+ 12 - 8
docs/ref/models/instances.txt

@@ -224,8 +224,8 @@ This method calls :meth:`Model.clean_fields()`, :meth:`Model.clean()`,
 in that order and raises a :exc:`~django.core.exceptions.ValidationError` that
 has a ``message_dict`` attribute containing errors from all four stages.
 
-The optional ``exclude`` argument can be used to provide a list of field names
-that can be excluded from validation and cleaning.
+The optional ``exclude`` argument can be used to provide a ``set`` of field
+names that can be excluded from validation and cleaning.
 :class:`~django.forms.ModelForm` uses this argument to exclude fields that
 aren't present on your form from being validated since any errors raised could
 not be corrected by the user.
@@ -249,12 +249,16 @@ The first step ``full_clean()`` performs is to clean each individual field.
 
     The ``validate_constraints`` argument was added.
 
+.. versionchanged:: 4.1
+
+    An ``exclude`` value is now converted to a ``set`` rather than a ``list``.
+
 .. method:: Model.clean_fields(exclude=None)
 
 This method will validate all fields on your model. The optional ``exclude``
-argument lets you provide a list of field names to exclude from validation. It
-will raise a :exc:`~django.core.exceptions.ValidationError` if any fields fail
-validation.
+argument lets you provide a ``set`` of field names to exclude from validation.
+It will raise a :exc:`~django.core.exceptions.ValidationError` if any fields
+fail validation.
 
 The second step ``full_clean()`` performs is to call :meth:`Model.clean()`.
 This method should be overridden to perform custom validation on your model.
@@ -355,8 +359,8 @@ uniqueness constraints defined via :attr:`.Field.unique`,
 :attr:`.Field.unique_for_date`, :attr:`.Field.unique_for_month`,
 :attr:`.Field.unique_for_year`, or :attr:`Meta.unique_together
 <django.db.models.Options.unique_together>` on your model instead of individual
-field values. The optional ``exclude`` argument allows you to provide a list of
-field names to exclude from validation. It will raise a
+field values. The optional ``exclude`` argument allows you to provide a ``set``
+of field names to exclude from validation. It will raise a
 :exc:`~django.core.exceptions.ValidationError` if any fields fail validation.
 
 :class:`~django.db.models.UniqueConstraint`\s defined in the
@@ -380,7 +384,7 @@ Finally, ``full_clean()`` will check any other constraints on your model.
 
 This method validates all constraints defined in
 :attr:`Meta.constraints <django.db.models.Options.constraints>`. The
-optional ``exclude`` argument allows you to provide a list of field names to
+optional ``exclude`` argument allows you to provide a ``set`` of field names to
 exclude from validation. It will raise a
 :exc:`~django.core.exceptions.ValidationError` if any constraints fail
 validation.

+ 6 - 0
docs/releases/4.1.txt

@@ -561,6 +561,12 @@ Miscellaneous
   ``URLResolver._callback_strs``, and ``URLPattern.lookup_str()`` are
   moved to ``django.contrib.admindocs.utils``.
 
+* The :meth:`.Model.full_clean` method now converts an ``exclude`` value to the
+  ``set``. It’s also preferable to pass an ``exclude`` value as a ``set`` to
+  the :meth:`.Model.clean_fields`, :meth:`.Model.full_clean`,
+  :meth:`.Model.validate_unique`, and :meth:`.Model.validate_constraints`
+  methods.
+
 .. _deprecated-features-4.1:
 
 Features deprecated in 4.1