Removed versionadded/changed annotations for 3.2.

This commit is contained in:
Mariusz Felisiak 2021-09-16 07:43:34 +02:00
parent 810bca5a1a
commit 97237ad3fe
56 changed files with 3 additions and 455 deletions

View File

@ -223,11 +223,6 @@ All attributes can be set in your derived class and can be used in
``'__all__'`` can be used to specify that all system checks should be ``'__all__'`` can be used to specify that all system checks should be
performed. Default value is ``'__all__'``. performed. Default value is ``'__all__'``.
.. versionchanged:: 3.2
In older versions, the ``requires_system_checks`` attribute expects a
boolean value instead of a list or tuple of tags.
.. attribute:: BaseCommand.style .. attribute:: BaseCommand.style
An instance attribute that helps create colored output when writing to An instance attribute that helps create colored output when writing to

View File

@ -321,16 +321,12 @@ Your custom reporter class needs to inherit from
.. attribute:: html_template_path .. attribute:: html_template_path
.. versionadded:: 3.2
Property that returns a :class:`pathlib.Path` representing the absolute Property that returns a :class:`pathlib.Path` representing the absolute
filesystem path to a template for rendering the HTML representation of filesystem path to a template for rendering the HTML representation of
the exception. Defaults to the Django provided template. the exception. Defaults to the Django provided template.
.. attribute:: text_template_path .. attribute:: text_template_path
.. versionadded:: 3.2
Property that returns a :class:`pathlib.Path` representing the absolute Property that returns a :class:`pathlib.Path` representing the absolute
filesystem path to a template for rendering the plain-text filesystem path to a template for rendering the plain-text
representation of the exception. Defaults to the Django provided representation of the exception. Defaults to the Django provided

View File

@ -94,8 +94,6 @@ with Django.
Colored terminal output Colored terminal output
======================= =======================
.. versionadded:: 3.2
A quality-of-life feature adds colored (rather than monochrome) output to the A quality-of-life feature adds colored (rather than monochrome) output to the
terminal. In modern terminals this should work for both CMD and PowerShell. If terminal. In modern terminals this should work for both CMD and PowerShell. If
for some reason this needs to be disabled, set the environmental variable for some reason this needs to be disabled, set the environmental variable

View File

@ -121,11 +121,6 @@ than the path to a configuration class.
from django.apps import apps as django_apps from django.apps import apps as django_apps
.. versionchanged:: 3.2
In previous versions, a ``default_app_config`` variable in the application
module was used to identify the default application configuration class.
For application users For application users
--------------------- ---------------------
@ -205,8 +200,6 @@ Configurable attributes
.. attribute:: AppConfig.default .. attribute:: AppConfig.default
.. versionadded:: 3.2
Set this attribute to ``False`` to prevent Django from selecting a Set this attribute to ``False`` to prevent Django from selecting a
configuration class automatically. This is useful when ``apps.py`` defines configuration class automatically. This is useful when ``apps.py`` defines
only one :class:`AppConfig` subclass but you don't want Django to use it by only one :class:`AppConfig` subclass but you don't want Django to use it by
@ -221,8 +214,6 @@ Configurable attributes
.. attribute:: AppConfig.default_auto_field .. attribute:: AppConfig.default_auto_field
.. versionadded:: 3.2
The implicit primary key type to add to models within this app. You can The implicit primary key type to add to models within this app. You can
use this to keep :class:`~django.db.models.AutoField` as the primary key use this to keep :class:`~django.db.models.AutoField` as the primary key
type for third party applications. type for third party applications.

View File

@ -94,10 +94,6 @@ Django's system checks are organized using the following tags:
Some checks may be registered with multiple tags. Some checks may be registered with multiple tags.
.. versionchanged:: 3.2
The ``sites`` tag was added.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
The ``files`` tag was added. The ``files`` tag was added.

View File

@ -344,10 +344,6 @@ views for displaying drilldown pages for date-based data.
* ``'%V'``: ISO 8601 week number where the week begins on Monday. * ``'%V'``: ISO 8601 week number where the week begins on Monday.
.. versionadded:: 3.2
Support for the ``'%V'`` week format was added.
**Example myapp/views.py**:: **Example myapp/views.py**::
from django.views.generic.dates import WeekArchiveView from django.views.generic.dates import WeekArchiveView

View File

@ -183,10 +183,6 @@ Date-based mixins
it to ``'%W'`` or ``'%V'`` (ISO 8601 week) if your week starts on it to ``'%W'`` or ``'%V'`` (ISO 8601 week) if your week starts on
Monday. Monday.
.. versionadded:: 3.2
Support for the ``'%V'`` week format was added.
.. attribute:: week .. attribute:: week
**Optional** The value for the week, as a string. By default, set to **Optional** The value for the week, as a string. By default, set to

View File

@ -119,13 +119,6 @@ function::
provide human-readable descriptions for callback functions registered provide human-readable descriptions for callback functions registered
there, too. there, too.
.. versionchanged:: 3.2
The ``description`` argument to the :func:`~django.contrib.admin.action`
decorator is equivalent to setting the ``short_description`` attribute on
the action function directly in previous versions. Setting the attribute
directly is still supported for backward compatibility.
Adding actions to the :class:`ModelAdmin` Adding actions to the :class:`ModelAdmin`
----------------------------------------- -----------------------------------------
@ -419,20 +412,11 @@ For example::
codename = get_permission_codename('publish', opts) codename = get_permission_codename('publish', opts)
return request.user.has_perm('%s.%s' % (opts.app_label, codename)) return request.user.has_perm('%s.%s' % (opts.app_label, codename))
.. versionchanged:: 3.2
The ``permissions`` argument to the :func:`~django.contrib.admin.action`
decorator is equivalent to setting the ``allowed_permissions`` attribute on
the action function directly in previous versions. Setting the attribute
directly is still supported for backward compatibility.
The ``action`` decorator The ``action`` decorator
======================== ========================
.. function:: action(*, permissions=None, description=None) .. function:: action(*, permissions=None, description=None)
.. versionadded:: 3.2
This decorator can be used for setting specific attributes on custom action This decorator can be used for setting specific attributes on custom action
functions that can be used with functions that can be used with
:attr:`~django.contrib.admin.ModelAdmin.actions`:: :attr:`~django.contrib.admin.ModelAdmin.actions`::

View File

@ -254,14 +254,6 @@ subclass::
def view_birth_date(self, obj): def view_birth_date(self, obj):
return obj.birth_date return obj.birth_date
.. versionchanged:: 3.2
The ``empty_value`` argument to the
:func:`~django.contrib.admin.display` decorator is equivalent to
setting the ``empty_value_display`` attribute on the display function
directly in previous versions. Setting the attribute directly is still
supported for backward compatibility.
.. attribute:: ModelAdmin.exclude .. attribute:: ModelAdmin.exclude
This attribute, if given, should be a list of field names to exclude from This attribute, if given, should be a list of field names to exclude from
@ -645,14 +637,6 @@ subclass::
:func:`~django.contrib.admin.display` decorator and passing the :func:`~django.contrib.admin.display` decorator and passing the
``description`` argument. ``description`` argument.
.. versionchanged:: 3.2
The ``description`` argument to the
:func:`~django.contrib.admin.display` decorator is equivalent to
setting the ``short_description`` attribute on the display function
directly in previous versions. Setting the attribute directly is
still supported for backward compatibility.
* If the value of a field is ``None``, an empty string, or an iterable * If the value of a field is ``None``, an empty string, or an iterable
without elements, Django will display ``-`` (a dash). You can override without elements, Django will display ``-`` (a dash). You can override
this with :attr:`AdminSite.empty_value_display`:: this with :attr:`AdminSite.empty_value_display`::
@ -675,14 +659,6 @@ subclass::
def birth_date_view(self, obj): def birth_date_view(self, obj):
return obj.birth_date return obj.birth_date
.. versionchanged:: 3.2
The ``empty_value`` argument to the
:func:`~django.contrib.admin.display` decorator is equivalent to
setting the ``empty_value_display`` attribute on the display function
directly in previous versions. Setting the attribute directly is
still supported for backward compatibility.
* If the string given is a method of the model, ``ModelAdmin`` or a * If the string given is a method of the model, ``ModelAdmin`` or a
callable that returns ``True``, ``False``, or ``None``, Django will callable that returns ``True``, ``False``, or ``None``, Django will
display a pretty "yes", "no", or "unknown" icon if you wrap the method display a pretty "yes", "no", or "unknown" icon if you wrap the method
@ -703,14 +679,6 @@ subclass::
class PersonAdmin(admin.ModelAdmin): class PersonAdmin(admin.ModelAdmin):
list_display = ('name', 'born_in_fifties') list_display = ('name', 'born_in_fifties')
.. versionchanged:: 3.2
The ``boolean`` argument to the
:func:`~django.contrib.admin.display` decorator is equivalent to
setting the ``boolean`` attribute on the display function directly in
previous versions. Setting the attribute directly is still supported
for backward compatibility.
* The ``__str__()`` method is just as valid in ``list_display`` as any * The ``__str__()`` method is just as valid in ``list_display`` as any
other model method, so it's perfectly OK to do this:: other model method, so it's perfectly OK to do this::
@ -782,14 +750,6 @@ subclass::
def full_name(self): def full_name(self):
return self.first_name + ' ' + self.last_name return self.first_name + ' ' + self.last_name
.. versionchanged:: 3.2
The ``ordering`` argument to the
:func:`~django.contrib.admin.display` decorator is equivalent to
setting the ``admin_order_field`` attribute on the display function
directly in previous versions. Setting the attribute directly is
still supported for backward compatibility.
* Elements of ``list_display`` can also be properties:: * Elements of ``list_display`` can also be properties::
class Person(models.Model): class Person(models.Model):
@ -1145,11 +1105,6 @@ subclass::
``prepopulated_fields`` doesn't accept ``DateTimeField``, ``ForeignKey``, ``prepopulated_fields`` doesn't accept ``DateTimeField``, ``ForeignKey``,
``OneToOneField``, and ``ManyToManyField`` fields. ``OneToOneField``, and ``ManyToManyField`` fields.
.. versionchanged:: 3.2
In older versions, various English stop words are removed from
generated values.
.. attribute:: ModelAdmin.preserve_filters .. attribute:: ModelAdmin.preserve_filters
By default, applied filters are preserved on the list view after creating, By default, applied filters are preserved on the list view after creating,
@ -1377,10 +1332,6 @@ subclass::
:meth:`ModelAdmin.get_search_results` to provide additional or alternate :meth:`ModelAdmin.get_search_results` to provide additional or alternate
search behavior. search behavior.
.. versionchanged:: 3.2
Support for searching against quoted phrases with spaces was added.
.. attribute:: ModelAdmin.search_help_text .. attribute:: ModelAdmin.search_help_text
.. versionadded:: 4.0 .. versionadded:: 4.0
@ -2877,8 +2828,6 @@ creating your own ``AdminSite`` instance (see below), and changing the
Theming support Theming support
=============== ===============
.. versionadded:: 3.2
The admin uses CSS variables to define colors. This allows changing colors The admin uses CSS variables to define colors. This allows changing colors
without having to override many individual CSS rules. For example, if you without having to override many individual CSS rules. For example, if you
preferred purple instead of blue you could add a ``admin/base.html`` template preferred purple instead of blue you could add a ``admin/base.html`` template
@ -2982,8 +2931,6 @@ Templates can override or extend base admin templates as described in
.. attribute:: AdminSite.final_catch_all_view .. attribute:: AdminSite.final_catch_all_view
.. versionadded:: 3.2
A boolean value that determines whether to add a final catch-all view to A boolean value that determines whether to add a final catch-all view to
the admin that redirects unauthenticated users to the login page. By the admin that redirects unauthenticated users to the login page. By
default, it is set to ``True``. default, it is set to ``True``.
@ -3422,8 +3369,6 @@ The ``display`` decorator
.. function:: display(*, boolean=None, ordering=None, description=None, empty_value=None) .. function:: display(*, boolean=None, ordering=None, description=None, empty_value=None)
.. versionadded:: 3.2
This decorator can be used for setting specific attributes on custom This decorator can be used for setting specific attributes on custom
display functions that can be used with display functions that can be used with
:attr:`~django.contrib.admin.ModelAdmin.list_display` or :attr:`~django.contrib.admin.ModelAdmin.list_display` or

View File

@ -511,10 +511,6 @@ The :mod:`django.contrib.contenttypes.forms` module provides:
:class:`~django.contrib.contenttypes.fields.GenericForeignKey.for_concrete_model` :class:`~django.contrib.contenttypes.fields.GenericForeignKey.for_concrete_model`
argument on ``GenericForeignKey``. argument on ``GenericForeignKey``.
.. versionchanged:: 3.2
The ``absolute_max`` and ``can_delete_extra`` arguments were added.
.. module:: django.contrib.contenttypes.admin .. module:: django.contrib.contenttypes.admin
Generic relations in admin Generic relations in admin

View File

@ -92,10 +92,6 @@ each feature in that layer.
Returns the name of the data source. Returns the name of the data source.
.. versionchanged:: 3.2
Support for :class:`pathlib.Path` ``ds_input`` was added.
__ https://gdal.org/drivers/vector/ __ https://gdal.org/drivers/vector/
``Layer`` ``Layer``
@ -1409,10 +1405,6 @@ blue.
>>> target.origin >>> target.origin
[-82.98492744885776, 27.601924753080144] [-82.98492744885776, 27.601924753080144]
.. versionchanged:: 3.2
Support for :class:`SpatialReference` ``srs`` was added
.. attribute:: info .. attribute:: info
Returns a string with a summary of the raster. This is equivalent to Returns a string with a summary of the raster. This is equivalent to

View File

@ -142,10 +142,6 @@ Keyword Arguments
Default is ``'default'``. Default is ``'default'``.
===================== ===================================================== ===================== =====================================================
.. versionchanged:: 3.2
Support for :class:`pathlib.Path` ``data_source`` was added.
``save()`` Keyword Arguments ``save()`` Keyword Arguments
---------------------------- ----------------------------

View File

@ -69,10 +69,6 @@ Django provides three built-in storage classes in
to prevent manipulation) to persist notifications across requests. Old to prevent manipulation) to persist notifications across requests. Old
messages are dropped if the cookie data size would exceed 2048 bytes. messages are dropped if the cookie data size would exceed 2048 bytes.
.. versionchanged:: 3.2
Messages format was changed to the :rfc:`6265` compliant format.
.. class:: storage.fallback.FallbackStorage .. class:: storage.fallback.FallbackStorage
This class first uses ``CookieStorage``, and falls back to using This class first uses ``CookieStorage``, and falls back to using

View File

@ -130,15 +130,11 @@ General-purpose aggregation functions
.. attribute:: distinct .. attribute:: distinct
.. versionadded:: 3.2
An optional boolean argument that determines if array values will be An optional boolean argument that determines if array values will be
distinct. Defaults to ``False``. distinct. Defaults to ``False``.
.. attribute:: ordering .. attribute:: ordering
.. versionadded:: 3.2
An optional string of a field name (with an optional ``"-"`` prefix An optional string of a field name (with an optional ``"-"`` prefix
which indicates descending order) or an expression (or a tuple or list which indicates descending order) or an expression (or a tuple or list
of strings and/or expressions) that specifies the ordering of the of strings and/or expressions) that specifies the ordering of the

View File

@ -109,8 +109,6 @@ enforced immediately after every command.
.. attribute:: ExclusionConstraint.include .. attribute:: ExclusionConstraint.include
.. versionadded:: 3.2
A list or tuple of the names of the fields to be included in the covering A list or tuple of the names of the fields to be included in the covering
exclusion constraint as non-key columns. This allows index-only scans to be exclusion constraint as non-key columns. This allows index-only scans to be
used for queries that select only included fields used for queries that select only included fields
@ -124,8 +122,6 @@ used for queries that select only included fields
.. attribute:: ExclusionConstraint.opclasses .. attribute:: ExclusionConstraint.opclasses
.. versionadded:: 3.2
The names of the `PostgreSQL operator classes The names of the `PostgreSQL operator classes
<https://www.postgresql.org/docs/current/indexes-opclass.html>`_ to use for <https://www.postgresql.org/docs/current/indexes-opclass.html>`_ to use for
this constraint. If you require a custom operator class, you must provide one this constraint. If you require a custom operator class, you must provide one

View File

@ -28,11 +28,6 @@ available from the ``django.contrib.postgres.indexes`` module.
.. _bloom: https://www.postgresql.org/docs/current/bloom.html .. _bloom: https://www.postgresql.org/docs/current/bloom.html
.. versionchanged:: 3.2
Positional argument ``*expressions`` was added in order to support
functional indexes.
``BrinIndex`` ``BrinIndex``
============= =============
@ -46,11 +41,6 @@ available from the ``django.contrib.postgres.indexes`` module.
The ``pages_per_range`` argument takes a positive integer. The ``pages_per_range`` argument takes a positive integer.
.. versionchanged:: 3.2
Positional argument ``*expressions`` was added in order to support
functional indexes.
.. _automatic summarization: https://www.postgresql.org/docs/current/brin-intro.html#BRIN-OPERATION .. _automatic summarization: https://www.postgresql.org/docs/current/brin-intro.html#BRIN-OPERATION
``BTreeIndex`` ``BTreeIndex``
@ -63,11 +53,6 @@ available from the ``django.contrib.postgres.indexes`` module.
Provide an integer value from 10 to 100 to the fillfactor_ parameter to Provide an integer value from 10 to 100 to the fillfactor_ parameter to
tune how packed the index pages will be. PostgreSQL's default is 90. tune how packed the index pages will be. PostgreSQL's default is 90.
.. versionchanged:: 3.2
Positional argument ``*expressions`` was added in order to support
functional indexes.
.. _fillfactor: https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS .. _fillfactor: https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS
``GinIndex`` ``GinIndex``
@ -92,11 +77,6 @@ available from the ``django.contrib.postgres.indexes`` module.
to tune the maximum size of the GIN pending list which is used when to tune the maximum size of the GIN pending list which is used when
``fastupdate`` is enabled. ``fastupdate`` is enabled.
.. versionchanged:: 3.2
Positional argument ``*expressions`` was added in order to support
functional indexes.
.. _GIN Fast Update Technique: https://www.postgresql.org/docs/current/gin-implementation.html#GIN-FAST-UPDATE .. _GIN Fast Update Technique: https://www.postgresql.org/docs/current/gin-implementation.html#GIN-FAST-UPDATE
.. _gin_pending_list_limit: https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-GIN-PENDING-LIST-LIMIT .. _gin_pending_list_limit: https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-GIN-PENDING-LIST-LIMIT
@ -127,11 +107,6 @@ available from the ``django.contrib.postgres.indexes`` module.
Provide an integer value from 10 to 100 to the fillfactor_ parameter to Provide an integer value from 10 to 100 to the fillfactor_ parameter to
tune how packed the index pages will be. PostgreSQL's default is 90. tune how packed the index pages will be. PostgreSQL's default is 90.
.. versionchanged:: 3.2
Positional argument ``*expressions`` was added in order to support
functional indexes.
.. _buffering build: https://www.postgresql.org/docs/current/gist-implementation.html#GIST-BUFFERING-BUILD .. _buffering build: https://www.postgresql.org/docs/current/gist-implementation.html#GIST-BUFFERING-BUILD
.. _fillfactor: https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS .. _fillfactor: https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS
@ -150,11 +125,6 @@ available from the ``django.contrib.postgres.indexes`` module.
Hash indexes have been available in PostgreSQL for a long time, but Hash indexes have been available in PostgreSQL for a long time, but
they suffer from a number of data integrity issues in older versions. they suffer from a number of data integrity issues in older versions.
.. versionchanged:: 3.2
Positional argument ``*expressions`` was added in order to support
functional indexes.
.. _fillfactor: https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS .. _fillfactor: https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS
``SpGistIndex`` ``SpGistIndex``
@ -168,18 +138,11 @@ available from the ``django.contrib.postgres.indexes`` module.
Provide an integer value from 10 to 100 to the fillfactor_ parameter to Provide an integer value from 10 to 100 to the fillfactor_ parameter to
tune how packed the index pages will be. PostgreSQL's default is 90. tune how packed the index pages will be. PostgreSQL's default is 90.
.. versionchanged:: 3.2
Positional argument ``*expressions`` was added in order to support
functional indexes.
.. _fillfactor: https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS .. _fillfactor: https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS
``OpClass()`` expressions ``OpClass()`` expressions
========================= =========================
.. versionadded:: 3.2
.. class:: OpClass(expression, name) .. class:: OpClass(expression, name)
An ``OpClass()`` expression represents the ``expression`` with a custom An ``OpClass()`` expression represents the ``expression`` with a custom

View File

@ -38,10 +38,6 @@ have to create the extension outside of Django migrations with a user that has
them. In that case, connect to your Django database and run the query them. In that case, connect to your Django database and run the query
``CREATE EXTENSION IF NOT EXISTS hstore;``. ``CREATE EXTENSION IF NOT EXISTS hstore;``.
.. versionchanged:: 3.2
In older versions, the pre-existence of the extension isn't checked.
.. currentmodule:: django.contrib.postgres.operations .. currentmodule:: django.contrib.postgres.operations
``CreateExtension`` ``CreateExtension``
@ -118,8 +114,6 @@ them. In that case, connect to your Django database and run the query
Managing collations using migrations Managing collations using migrations
==================================== ====================================
.. versionadded:: 3.2
If you need to filter or order a column using a particular collation that your If you need to filter or order a column using a particular collation that your
operating system provides but PostgreSQL does not, you can manage collations in operating system provides but PostgreSQL does not, you can manage collations in
your database using a migration file. These collations can then be used with your database using a migration file. These collations can then be used with

View File

@ -268,8 +268,6 @@ Note:
.. attribute:: Sitemap.languages .. attribute:: Sitemap.languages
.. versionadded:: 3.2
**Optional.** **Optional.**
A :term:`sequence` of :term:`language codes<language code>` to use for A :term:`sequence` of :term:`language codes<language code>` to use for
@ -278,8 +276,6 @@ Note:
.. attribute:: Sitemap.alternates .. attribute:: Sitemap.alternates
.. versionadded:: 3.2
**Optional.** **Optional.**
A boolean attribute. When used in conjunction with A boolean attribute. When used in conjunction with
@ -291,8 +287,6 @@ Note:
.. attribute:: Sitemap.x_default .. attribute:: Sitemap.x_default
.. versionadded:: 3.2
**Optional.** **Optional.**
A boolean attribute. When ``True`` the alternate links generated by A boolean attribute. When ``True`` the alternate links generated by
@ -498,10 +492,6 @@ The ``alternates`` attribute is available when :attr:`~Sitemap.i18n` and
versions, including the optional :attr:`~Sitemap.x_default` fallback, for each versions, including the optional :attr:`~Sitemap.x_default` fallback, for each
URL. Each alternate is a dictionary with ``location`` and ``lang_code`` keys. URL. Each alternate is a dictionary with ``location`` and ``lang_code`` keys.
.. versionchanged:: 3.2
The ``alternates`` attribute was added.
The ``item`` attribute has been added for each URL to allow more flexible The ``item`` attribute has been added for each URL to allow more flexible
customization of the templates, such as `Google news sitemaps`_. Assuming customization of the templates, such as `Google news sitemaps`_. Assuming
Sitemap's :attr:`~Sitemap.items()` would return a list of items with Sitemap's :attr:`~Sitemap.items()` would return a list of items with

View File

@ -906,11 +906,6 @@ This example illustrates all possible attributes and methods for a
item_comments = 'https://www.example.com/comments' # Hard-coded comments URL item_comments = 'https://www.example.com/comments' # Hard-coded comments URL
.. versionchanged:: 3.2
Support for a comments URL per feed item was added through the
``item_comments`` hook.
The low-level framework The low-level framework
======================= =======================

View File

@ -477,10 +477,6 @@ because it is more accurate.
differ only by case will pass validation, but upon calling ``save()``, an differ only by case will pass validation, but upon calling ``save()``, an
``IntegrityError`` will be raised. ``IntegrityError`` will be raised.
.. versionchanged:: 3.2
Support for setting a database collation for the field was added.
Connecting to the database Connecting to the database
-------------------------- --------------------------

View File

@ -363,8 +363,6 @@ progress bar is shown in the terminal.
Fixtures compression Fixtures compression
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
.. versionadded:: 3.2
The output file can be compressed with one of the ``bz2``, ``gz``, ``lzma``, or The output file can be compressed with one of the ``bz2``, ``gz``, ``lzma``, or
``xz`` formats by ending the filename with the corresponding extension. ``xz`` formats by ending the filename with the corresponding extension.
For example, to output the data as a compressed JSON file:: For example, to output the data as a compressed JSON file::
@ -627,10 +625,6 @@ installation will be aborted, and any data installed in the call to
constraints, so if you use MyISAM, you won't get validation of fixture constraints, so if you use MyISAM, you won't get validation of fixture
data, or a rollback if multiple transaction files are found. data, or a rollback if multiple transaction files are found.
.. versionchanged:: 3.2
Support for XZ archives (``.xz``) and LZMA archives (``.lzma``) was added.
Database-specific fixtures Database-specific fixtures
~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -831,12 +825,6 @@ Generate migration files without Django version and timestamp header.
Makes ``makemigrations`` exit with a non-zero status when model changes without Makes ``makemigrations`` exit with a non-zero status when model changes without
migrations are detected. migrations are detected.
.. versionchanged:: 3.2
Support for calling ``makemigrations`` without an active database
connection was added. In that case, check for a consistent migration
history is skipped.
``migrate`` ``migrate``
----------- -----------
@ -1565,16 +1553,12 @@ as :option:`unittest's --buffer option<unittest.-b>`.
.. django-admin-option:: --no-faulthandler .. django-admin-option:: --no-faulthandler
.. versionadded:: 3.2
Django automatically calls :func:`faulthandler.enable()` when starting the Django automatically calls :func:`faulthandler.enable()` when starting the
tests, which allows it to print a traceback if the interpreter crashes. Pass tests, which allows it to print a traceback if the interpreter crashes. Pass
``--no-faulthandler`` to disable this behavior. ``--no-faulthandler`` to disable this behavior.
.. django-admin-option:: --timing .. django-admin-option:: --timing
.. versionadded:: 3.2
Outputs timings, including database setup and total run time. Outputs timings, including database setup and total run time.
``testserver`` ``testserver``
@ -1940,10 +1924,6 @@ but which are not automatically detected as supported by Django, may "fake" the
installation of ``ANSICON`` by setting the appropriate environmental variable, installation of ``ANSICON`` by setting the appropriate environmental variable,
``ANSICON="on"``. ``ANSICON="on"``.
.. versionchanged:: 3.2
Updated support for syntax coloring on Windows.
.. _`Windows Terminal`: https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701 .. _`Windows Terminal`: https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701
.. _`VS Code`: https://code.visualstudio.com .. _`VS Code`: https://code.visualstudio.com
.. _ANSICON: http://adoxa.altervista.org/ansicon/ .. _ANSICON: http://adoxa.altervista.org/ansicon/

View File

@ -167,8 +167,6 @@ list of errors.
.. exception:: BadRequest .. exception:: BadRequest
.. versionadded:: 3.2
The :exc:`BadRequest` exception is raised when the request cannot be The :exc:`BadRequest` exception is raised when the request cannot be
processed due to a client error. If a ``BadRequest`` exception reaches the processed due to a client error. If a ``BadRequest`` exception reaches the
ASGI/WSGI handler level it results in a ASGI/WSGI handler level it results in a
@ -295,8 +293,6 @@ Sessions exceptions are defined in ``django.contrib.sessions.exceptions``.
.. exception:: SessionInterrupted .. exception:: SessionInterrupted
.. versionadded:: 3.2
:exc:`SessionInterrupted` is raised when a session is destroyed in a :exc:`SessionInterrupted` is raised when a session is destroyed in a
concurrent request. It's a subclass of concurrent request. It's a subclass of
:exc:`~django.core.exceptions.BadRequest`. :exc:`~django.core.exceptions.BadRequest`.

View File

@ -214,8 +214,6 @@ attributes:
.. method:: FileUploadHandler.upload_interrupted() .. method:: FileUploadHandler.upload_interrupted()
.. versionadded:: 3.2
Callback signaling that the upload was interrupted, e.g. when the user Callback signaling that the upload was interrupted, e.g. when the user
closed their browser during file upload. closed their browser during file upload.

View File

@ -17,10 +17,6 @@ Formset API reference. For introductory material about formsets, see the
See :doc:`formsets </topics/forms/formsets>` for example usage. See :doc:`formsets </topics/forms/formsets>` for example usage.
.. versionchanged:: 3.2
The ``absolute_max`` and ``can_delete_extra`` arguments were added.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
The ``renderer`` argument was added. The ``renderer`` argument was added.

View File

@ -69,10 +69,6 @@ Model Form API reference. For introductory material about model forms, see the
See :ref:`model-formsets` for example usage. See :ref:`model-formsets` for example usage.
.. versionchanged:: 3.2
The ``absolute_max`` and ``can_delete_extra`` arguments were added.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
The ``renderer`` argument was added. The ``renderer`` argument was added.
@ -91,10 +87,6 @@ Model Form API reference. For introductory material about model forms, see the
See :ref:`inline-formsets` for example usage. See :ref:`inline-formsets` for example usage.
.. versionchanged:: 3.2
The ``absolute_max`` and ``can_delete_extra`` arguments were added.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
The ``renderer`` argument was added. The ``renderer`` argument was added.

View File

@ -72,11 +72,6 @@ Adds a few conveniences for perfectionists:
"""View to be excluded from APPEND_SLASH.""" """View to be excluded from APPEND_SLASH."""
return HttpResponse() return HttpResponse()
.. versionchanged:: 3.2
Support for the :func:`~django.views.decorators.common.no_append_slash`
decorator was added.
* Sets the ``Content-Length`` header for non-streaming responses. * Sets the ``Content-Length`` header for non-streaming responses.
.. attribute:: CommonMiddleware.response_redirect_class .. attribute:: CommonMiddleware.response_redirect_class

View File

@ -490,10 +490,6 @@ structure of an ``Operation`` looks like this::
# migration containing this operation, or None if not applicable. # migration containing this operation, or None if not applicable.
return "custom_operation_%s_%s" % (self.arg1, self.arg2) return "custom_operation_%s_%s" % (self.arg1, self.arg2)
.. versionadded:: 3.2
The ``migration_name_fragment`` property was added.
You can take this template and work from it, though we suggest looking at the You can take this template and work from it, though we suggest looking at the
built-in Django operations in ``django.db.migrations.operations`` - they cover built-in Django operations in ``django.db.migrations.operations`` - they cover
a lot of the example usage of semi-internal aspects of the migration framework a lot of the example usage of semi-internal aspects of the migration framework

View File

@ -92,10 +92,6 @@ Keep in mind that each of these values can be an expression.
>>> When(then__exact=0, then=1) >>> When(then__exact=0, then=1)
>>> When(Q(then=0), then=1) >>> When(Q(then=0), then=1)
.. versionchanged:: 3.2
Support for using the ``condition`` argument with ``lookups`` was added.
``Case`` ``Case``
-------- --------

View File

@ -165,8 +165,6 @@ enforced immediately after every command.
.. attribute:: UniqueConstraint.include .. attribute:: UniqueConstraint.include
.. versionadded:: 3.2
A list or tuple of the names of the fields to be included in the covering A list or tuple of the names of the fields to be included in the covering
unique index as non-key columns. This allows index-only scans to be used for unique index as non-key columns. This allows index-only scans to be used for
queries that select only included fields (:attr:`~UniqueConstraint.include`) queries that select only included fields (:attr:`~UniqueConstraint.include`)
@ -189,8 +187,6 @@ Non-key columns have the same database restrictions as :attr:`Index.include`.
.. attribute:: UniqueConstraint.opclasses .. attribute:: UniqueConstraint.opclasses
.. versionadded:: 3.2
The names of the `PostgreSQL operator classes The names of the `PostgreSQL operator classes
<https://www.postgresql.org/docs/current/indexes-opclass.html>`_ to use for <https://www.postgresql.org/docs/current/indexes-opclass.html>`_ to use for
this unique index. If you require a custom operator class, you must provide one this unique index. If you require a custom operator class, you must provide one

View File

@ -97,8 +97,6 @@ Usage examples::
.. class:: Collate(expression, collation) .. class:: Collate(expression, collation)
.. versionadded:: 3.2
Takes an expression and a collation name to query against. Takes an expression and a collation name to query against.
For example, to filter case-insensitively in SQLite:: For example, to filter case-insensitively in SQLite::
@ -158,8 +156,6 @@ and ``comment.modified``.
.. class:: JSONObject(**fields) .. class:: JSONObject(**fields)
.. versionadded:: 3.2
Takes a list of key-value pairs and returns a JSON object containing those Takes a list of key-value pairs and returns a JSON object containing those
pairs. pairs.
@ -663,10 +659,6 @@ that deal with date-parts can be used with ``DateField``::
.. attribute:: lookup_name = 'date' .. attribute:: lookup_name = 'date'
.. attribute:: output_field = DateField() .. attribute:: output_field = DateField()
.. versionchanged:: 3.2
The ``tzinfo`` parameter was added.
``TruncDate`` casts ``expression`` to a date rather than using the built-in SQL ``TruncDate`` casts ``expression`` to a date rather than using the built-in SQL
truncate function. It's also registered as a transform on ``DateTimeField`` as truncate function. It's also registered as a transform on ``DateTimeField`` as
``__date``. ``__date``.
@ -676,10 +668,6 @@ truncate function. It's also registered as a transform on ``DateTimeField`` as
.. attribute:: lookup_name = 'time' .. attribute:: lookup_name = 'time'
.. attribute:: output_field = TimeField() .. attribute:: output_field = TimeField()
.. versionchanged:: 3.2
The ``tzinfo`` parameter was added.
``TruncTime`` casts ``expression`` to a time rather than using the built-in SQL ``TruncTime`` casts ``expression`` to a time rather than using the built-in SQL
truncate function. It's also registered as a transform on ``DateTimeField`` as truncate function. It's also registered as a transform on ``DateTimeField`` as
``__time``. ``__time``.
@ -1162,8 +1150,6 @@ It can also be registered as a transform. For example::
.. class:: Random(**extra) .. class:: Random(**extra)
.. versionadded:: 3.2
Returns a random value in the range ``0.0 ≤ x < 1.0``. Returns a random value in the range ``0.0 ≤ x < 1.0``.
``Round`` ``Round``

View File

@ -163,10 +163,6 @@ the field value of each one, and saving each one back to the database::
* getting the database, rather than Python, to do work * getting the database, rather than Python, to do work
* reducing the number of queries some operations require * reducing the number of queries some operations require
.. versionchanged:: 3.2
Support for transforms of the field was added.
.. _avoiding-race-conditions-using-f: .. _avoiding-race-conditions-using-f:
Avoiding race conditions using ``F()`` Avoiding race conditions using ``F()``
@ -460,10 +456,6 @@ grouping) contains no entries.
The ``**extra`` kwargs are ``key=value`` pairs that can be interpolated The ``**extra`` kwargs are ``key=value`` pairs that can be interpolated
into the ``template`` attribute. into the ``template`` attribute.
.. versionchanged:: 3.2
Support for transforms of the field was added.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
The ``default`` argument was added. The ``default`` argument was added.
@ -522,11 +514,6 @@ inferred from the :py:class:`type` of the provided ``value``, if possible. For
example, passing an instance of :py:class:`datetime.datetime` as ``value`` example, passing an instance of :py:class:`datetime.datetime` as ``value``
would default ``output_field`` to :class:`~django.db.models.DateTimeField`. would default ``output_field`` to :class:`~django.db.models.DateTimeField`.
.. versionchanged:: 3.2
Support for inferring a default ``output_field`` from the type of ``value``
was added.
``ExpressionWrapper()`` expressions ``ExpressionWrapper()`` expressions
----------------------------------- -----------------------------------
@ -595,10 +582,6 @@ parent. For example, this queryset would need to be within a nested pair of
>>> Book.objects.filter(author=OuterRef(OuterRef('pk'))) >>> Book.objects.filter(author=OuterRef(OuterRef('pk')))
.. versionchanged:: 3.2
Support for transforms of the field was added.
Limiting a subquery to a single column Limiting a subquery to a single column
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -436,11 +436,6 @@ The primary key field is read-only. If you change the value of the primary
key on an existing object and then save it, a new object will be created key on an existing object and then save it, a new object will be created
alongside the old one. alongside the old one.
.. versionchanged:: 3.2
In older versions, auto-created primary key fields were always
:class:`AutoField`\s.
``unique`` ``unique``
---------- ----------
@ -623,8 +618,6 @@ The default form widget for this field is a :class:`~django.forms.TextInput`.
.. attribute:: CharField.db_collation .. attribute:: CharField.db_collation
.. versionadded:: 3.2
Optional. The database collation name of the field. Optional. The database collation name of the field.
.. note:: .. note::
@ -1347,8 +1340,6 @@ However it is not enforced at the model or database level. Use a
.. attribute:: TextField.db_collation .. attribute:: TextField.db_collation
.. versionadded:: 3.2
The database collation name of the field. The database collation name of the field.
.. note:: .. note::

View File

@ -30,8 +30,6 @@ options`_.
.. attribute:: Index.expressions .. attribute:: Index.expressions
.. versionadded:: 3.2
Positional argument ``*expressions`` allows creating functional indexes on Positional argument ``*expressions`` allows creating functional indexes on
expressions and database functions. expressions and database functions.
@ -188,8 +186,6 @@ indexes records with more than 400 pages.
.. attribute:: Index.include .. attribute:: Index.include
.. versionadded:: 3.2
A list or tuple of the names of the fields to be included in the covering index A list or tuple of the names of the fields to be included in the covering index
as non-key columns. This allows index-only scans to be used for queries that as non-key columns. This allows index-only scans to be used for queries that
select only included fields (:attr:`~Index.include`) and filter only by indexed select only included fields (:attr:`~Index.include`) and filter only by indexed

View File

@ -286,8 +286,6 @@ Aggregation </topics/db/aggregation>`.
.. method:: alias(*args, **kwargs) .. method:: alias(*args, **kwargs)
.. versionadded:: 3.2
Same as :meth:`annotate`, but instead of annotating objects in the Same as :meth:`annotate`, but instead of annotating objects in the
``QuerySet``, saves the expression for later reuse with other ``QuerySet`` ``QuerySet``, saves the expression for later reuse with other ``QuerySet``
methods. This is useful when the result of the expression itself is not needed methods. This is useful when the result of the expression itself is not needed
@ -1832,12 +1830,6 @@ raised if ``select_for_update()`` is used in autocommit mode.
PostgreSQL doesn't support ``select_for_update()`` with PostgreSQL doesn't support ``select_for_update()`` with
:class:`~django.db.models.expressions.Window` expressions. :class:`~django.db.models.expressions.Window` expressions.
.. versionchanged:: 3.2
The ``no_key`` argument was added.
The ``of`` argument was allowed on MySQL 8.0.1+.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
The ``skip_locked`` argument was allowed on MariaDB 10.6+. The ``skip_locked`` argument was allowed on MariaDB 10.6+.
@ -1860,11 +1852,6 @@ See the :doc:`/topics/db/sql` for more information.
filtering. As such, it should generally be called from the ``Manager`` or filtering. As such, it should generally be called from the ``Manager`` or
from a fresh ``QuerySet`` instance. from a fresh ``QuerySet`` instance.
.. versionchanged:: 3.2
The default value of the ``params`` argument was changed from ``None`` to
an empty tuple.
Operators that return new ``QuerySet``\s Operators that return new ``QuerySet``\s
---------------------------------------- ----------------------------------------
@ -2328,10 +2315,6 @@ Example::
If you pass ``in_bulk()`` an empty list, you'll get an empty dictionary. If you pass ``in_bulk()`` an empty list, you'll get an empty dictionary.
.. versionchanged:: 3.2
Using a distinct field was allowed.
``iterator()`` ``iterator()``
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
@ -2658,8 +2641,6 @@ update a bunch of records for a model that has a custom
Ordered queryset Ordered queryset
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
.. versionadded:: 3.2
Chaining ``order_by()`` with ``update()`` is supported only on MariaDB and Chaining ``order_by()`` with ``update()`` is supported only on MariaDB and
MySQL, and is ignored for different databases. This is useful for updating a MySQL, and is ignored for different databases. This is useful for updating a
unique field in the order that is specified without conflicts. For example:: unique field in the order that is specified without conflicts. For example::
@ -3558,10 +3539,6 @@ All aggregates have the following parameters in common:
Strings that reference fields on the model, transforms of the field, or Strings that reference fields on the model, transforms of the field, or
:doc:`query expressions </ref/models/expressions>`. :doc:`query expressions </ref/models/expressions>`.
.. versionchanged:: 3.2
Support for transforms of the field was added.
``output_field`` ``output_field``
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
@ -3847,7 +3824,3 @@ operate on vegetarian pizzas.
* :meth:`.QuerySet.only` and :meth:`~.QuerySet.prefetch_related`. * :meth:`.QuerySet.only` and :meth:`~.QuerySet.prefetch_related`.
* A :class:`~django.contrib.contenttypes.fields.GenericForeignKey` * A :class:`~django.contrib.contenttypes.fields.GenericForeignKey`
inherited from a parent model. inherited from a parent model.
.. versionchanged:: 3.2
Support for nested relations was added.

View File

@ -80,8 +80,6 @@ Methods
.. method:: Paginator.get_elided_page_range(number, *, on_each_side=3, on_ends=2) .. method:: Paginator.get_elided_page_range(number, *, on_each_side=3, on_ends=2)
.. versionadded:: 3.2
Returns a 1-based list of page numbers similar to Returns a 1-based list of page numbers similar to
:attr:`Paginator.page_range`, but may add an ellipsis to either or both :attr:`Paginator.page_range`, but may add an ellipsis to either or both
sides of the current page number when :attr:`Paginator.num_pages` is large. sides of the current page number when :attr:`Paginator.num_pages` is large.
@ -106,8 +104,6 @@ Attributes
.. attribute:: Paginator.ELLIPSIS .. attribute:: Paginator.ELLIPSIS
.. versionadded:: 3.2
A translatable string used as a substitute for elided page numbers in the A translatable string used as a substitute for elided page numbers in the
page range returned by :meth:`~Paginator.get_elided_page_range`. Default is page range returned by :meth:`~Paginator.get_elided_page_range`. Default is
``'…'``. ``'…'``.

View File

@ -723,12 +723,6 @@ middleware, are not removed.
HTTP header fields cannot contain newlines. An attempt to set a header field HTTP header fields cannot contain newlines. An attempt to set a header field
containing a newline character (CR or LF) will raise ``BadHeaderError`` containing a newline character (CR or LF) will raise ``BadHeaderError``
.. versionchanged:: 3.2
The :attr:`HttpResponse.headers` interface was added.
The ability to set headers on instantiation was added.
Telling the browser to treat the response as a file attachment Telling the browser to treat the response as a file attachment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -753,8 +747,6 @@ Attributes
.. attribute:: HttpResponse.headers .. attribute:: HttpResponse.headers
.. versionadded:: 3.2
A case insensitive, dict-like object that provides an interface to all A case insensitive, dict-like object that provides an interface to all
HTTP headers on the response. See :ref:`setting-header-fields`. HTTP headers on the response. See :ref:`setting-header-fields`.
@ -824,10 +816,6 @@ Methods
``headers`` is a :class:`dict` of HTTP headers for the response. ``headers`` is a :class:`dict` of HTTP headers for the response.
.. versionchanged:: 3.2
The ``headers`` parameter was added.
.. method:: HttpResponse.__setitem__(header, value) .. method:: HttpResponse.__setitem__(header, value)
Sets the given header name to the given value. Both ``header`` and Sets the given header name to the given value. Both ``header`` and

View File

@ -159,10 +159,6 @@ You can use a cache backend that doesn't ship with Django by setting
:setting:`BACKEND <CACHES-BACKEND>` to a fully-qualified path of a cache :setting:`BACKEND <CACHES-BACKEND>` to a fully-qualified path of a cache
backend class (i.e. ``mypackage.backends.whatever.WhateverCache``). backend class (i.e. ``mypackage.backends.whatever.WhateverCache``).
.. versionchanged:: 3.2
The ``PyMemcacheCache`` backend was added.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
The ``RedisCache`` backend was added. The ``RedisCache`` backend was added.
@ -1259,8 +1255,6 @@ See also :setting:`NUMBER_GROUPING`, :setting:`THOUSAND_SEPARATOR` and
``DEFAULT_AUTO_FIELD`` ``DEFAULT_AUTO_FIELD``
---------------------- ----------------------
.. versionadded:: 3.2
Default: ``'``:class:`django.db.models.AutoField`\ ``'`` Default: ``'``:class:`django.db.models.AutoField`\ ``'``
Default primary key field type to use for models that don't have a field with Default primary key field type to use for models that don't have a field with

View File

@ -93,10 +93,6 @@ Methods
``headers`` ``headers``
A :class:`dict` of HTTP headers to add to the response. A :class:`dict` of HTTP headers to add to the response.
.. versionchanged:: 3.2
The ``headers`` parameter was added.
.. method:: SimpleTemplateResponse.resolve_context(context) .. method:: SimpleTemplateResponse.resolve_context(context)
Preprocesses context data that will be used for rendering a template. Preprocesses context data that will be used for rendering a template.
@ -195,10 +191,6 @@ Methods
``headers`` ``headers``
A :class:`dict` of HTTP headers to add to the response. A :class:`dict` of HTTP headers to add to the response.
.. versionchanged:: 3.2
The ``headers`` parameter was added.
The rendering process The rendering process
===================== =====================

View File

@ -1751,10 +1751,6 @@ locale is ``pl`` (Polish):
Using ``floatformat`` with no argument is equivalent to using ``floatformat`` Using ``floatformat`` with no argument is equivalent to using ``floatformat``
with an argument of ``-1``. with an argument of ``-1``.
.. versionchanged:: 3.2
The ``g`` suffix to force grouping by thousand separators was added.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
``floatformat`` template filter no longer depends on the ``floatformat`` template filter no longer depends on the

View File

@ -139,8 +139,6 @@ If the URL does not resolve, the function raises a
.. attribute:: ResolverMatch.tried .. attribute:: ResolverMatch.tried
.. versionadded:: 3.2
The list of URL patterns tried before the URL either matched one or The list of URL patterns tried before the URL either matched one or
exhausted available patterns. exhausted available patterns.

View File

@ -821,11 +821,6 @@ appropriate entities.
>>> slugify('你好 World', allow_unicode=True) >>> slugify('你好 World', allow_unicode=True)
'你好-world' '你好-world'
.. versionchanged:: 3.2
In older versions, leading and trailing dashes and underscores are not
removed.
.. _time-zone-selection-functions: .. _time-zone-selection-functions:
``django.utils.timezone`` ``django.utils.timezone``

View File

@ -1172,10 +1172,3 @@ Finally, specify the custom model as the default user model for your project
using the :setting:`AUTH_USER_MODEL` setting in your ``settings.py``:: using the :setting:`AUTH_USER_MODEL` setting in your ``settings.py``::
AUTH_USER_MODEL = 'customauth.MyUser' AUTH_USER_MODEL = 'customauth.MyUser'
.. versionchanged:: 3.2
In older versions, ``ReadOnlyPasswordHashField`` is not
:attr:`~django.forms.Field.disabled` by default and
``UserChangeForm.clean_password()`` is required to return the initial
value, whatever the user provides.

View File

@ -178,8 +178,6 @@ To use scrypt_ as your default storage algorithm, do the following:
Increasing the salt entropy Increasing the salt entropy
--------------------------- ---------------------------
.. versionadded:: 3.2
Most password hashes include a salt along with their password hash in order to Most password hashes include a salt along with their password hash in order to
protect against rainbow table attacks. The salt itself is a random value which protect against rainbow table attacks. The salt itself is a random value which
increases the size and thus the cost of the rainbow table and is currently set increases the size and thus the cost of the rainbow table and is currently set

View File

@ -158,10 +158,6 @@ permanent storage -- they're all intended to be solutions for caching, not
storage -- but we point this out here because memory-based caching is storage -- but we point this out here because memory-based caching is
particularly temporary. particularly temporary.
.. versionchanged:: 3.2
The ``PyMemcacheCache`` backend was added.
.. deprecated:: 3.2 .. deprecated:: 3.2
The ``MemcachedCache`` backend is deprecated as ``python-memcached`` has The ``MemcachedCache`` backend is deprecated as ``python-memcached`` has

View File

@ -274,11 +274,6 @@ sees you've explicitly set :attr:`Field.primary_key`, it won't add the automatic
Each model requires exactly one field to have :attr:`primary_key=True Each model requires exactly one field to have :attr:`primary_key=True
<Field.primary_key>` (either explicitly declared or automatically added). <Field.primary_key>` (either explicitly declared or automatically added).
.. versionchanged:: 3.2
In older versions, auto-created primary key fields were always
:class:`AutoField`\s.
.. _verbose-field-names: .. _verbose-field-names:
Verbose field names Verbose field names

View File

@ -670,8 +670,6 @@ The ``F()`` objects support bitwise operations by ``.bitand()``, ``.bitor()``,
Expressions can reference transforms Expressions can reference transforms
------------------------------------ ------------------------------------
.. versionadded:: 3.2
Django supports using transforms in expressions. Django supports using transforms in expressions.
For example, to find all ``Entry`` objects published in the same year as they For example, to find all ``Entry`` objects published in the same year as they

View File

@ -98,11 +98,6 @@ make it very powerful.
both rows will match. To prevent this, perform the correct typecasting both rows will match. To prevent this, perform the correct typecasting
before using the value in a query. before using the value in a query.
.. versionchanged:: 3.2
The default value of the ``params`` argument was changed from ``None`` to
an empty tuple.
Mapping query fields to model fields Mapping query fields to model fields
------------------------------------ ------------------------------------

View File

@ -244,10 +244,6 @@ Django provides a single API to control database transactions.
testing durable atomic blocks in a transaction for performance reasons. Use testing durable atomic blocks in a transaction for performance reasons. Use
:class:`django.test.TransactionTestCase` for testing durability. :class:`django.test.TransactionTestCase` for testing durability.
.. versionchanged:: 3.2
The ``durable`` argument was added.
Autocommit Autocommit
========== ==========

View File

@ -131,8 +131,6 @@ validation. See :ref:`validate_max`.
Limiting the maximum number of instantiated forms Limiting the maximum number of instantiated forms
================================================= =================================================
.. versionadded:: 3.2
The ``absolute_max`` parameter to :func:`.formset_factory` allows limiting the The ``absolute_max`` parameter to :func:`.formset_factory` allows limiting the
number of forms that can be instantiated when supplying ``POST`` data. This number of forms that can be instantiated when supplying ``POST`` data. This
protects against memory exhaustion attacks using forged ``POST`` requests:: protects against memory exhaustion attacks using forged ``POST`` requests::
@ -268,11 +266,6 @@ the management data by rendering ``{{ my_formset.management_form }}``
client-side code. These fields are not required and so are not shown in client-side code. These fields are not required and so are not shown in
the example ``POST`` data. the example ``POST`` data.
.. versionchanged:: 3.2
``formset.is_valid()`` now returns ``False`` rather than raising an
exception when the management form is missing or has been tampered with.
``total_form_count`` and ``initial_form_count`` ``total_form_count`` and ``initial_form_count``
----------------------------------------------- -----------------------------------------------
@ -297,8 +290,6 @@ forms with JavaScript.
``error_messages`` ``error_messages``
------------------ ------------------
.. versionadded:: 3.2
The ``error_messages`` argument lets you override the default messages that the The ``error_messages`` argument lets you override the default messages that the
formset will raise. Pass in a dictionary with keys matching the error messages formset will raise. Pass in a dictionary with keys matching the error messages
you want to override. For example, here is the default error message when the you want to override. For example, here is the default error message when the
@ -682,8 +673,6 @@ use with ``can_delete``::
``can_delete_extra`` ``can_delete_extra``
-------------------- --------------------
.. versionadded:: 3.2
.. attribute:: BaseFormSet.can_delete_extra .. attribute:: BaseFormSet.can_delete_extra
Default: ``True`` Default: ``True``

View File

@ -127,8 +127,6 @@ client-side caching.
Common Common
====== ======
.. versionadded:: 3.2
The decorators in :mod:`django.views.decorators.common` allow per-view The decorators in :mod:`django.views.decorators.common` allow per-view
customization of :class:`~django.middleware.common.CommonMiddleware` behavior. customization of :class:`~django.middleware.common.CommonMiddleware` behavior.

View File

@ -35,10 +35,6 @@ Time zone support uses :mod:`zoneinfo`, which is part of the Python standard
library from Python 3.9. The ``backports.zoneinfo`` package is automatically library from Python 3.9. The ``backports.zoneinfo`` package is automatically
installed alongside Django if you are using Python 3.8. installed alongside Django if you are using Python 3.8.
.. versionchanged:: 3.2
Support for non-``pytz`` timezone implementations was added.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
:mod:`zoneinfo` was made the default timezone implementation. You may :mod:`zoneinfo` was made the default timezone implementation. You may

View File

@ -754,11 +754,6 @@ Django can serialize the following:
- Any class reference (must be in module's top-level scope) - Any class reference (must be in module's top-level scope)
- Anything with a custom ``deconstruct()`` method (:ref:`see below <custom-deconstruct-method>`) - Anything with a custom ``deconstruct()`` method (:ref:`see below <custom-deconstruct-method>`)
.. versionchanged:: 3.2
Serialization support for pure and concrete path objects from
:mod:`pathlib`, and :class:`os.PathLike` instances was added.
Django cannot serialize: Django cannot serialize:
- Nested classes - Nested classes

View File

@ -310,8 +310,6 @@ The JSON serializer uses ``DjangoJSONEncoder`` for encoding. A subclass of
JSONL JSONL
----- -----
.. versionadded:: 3.2
*JSONL* stands for *JSON Lines*. With this format, objects are separated by new *JSONL* stands for *JSON Lines*. With this format, objects are separated by new
lines, and each line contains a valid JSON object. JSONL serialized data looks lines, and each line contains a valid JSON object. JSONL serialized data looks
like this:: like this::

View File

@ -101,10 +101,6 @@ generate signatures. You can use a different secret by passing it to the
and underscores. ``algorithm`` must be an algorithm supported by and underscores. ``algorithm`` must be an algorithm supported by
:py:mod:`hashlib`, it defaults to ``'sha256'``. :py:mod:`hashlib`, it defaults to ``'sha256'``.
.. versionchanged:: 3.2
The ``sign_object()`` and ``unsign_object()`` methods were added.
Using the ``salt`` argument Using the ``salt`` argument
--------------------------- ---------------------------
@ -139,10 +135,6 @@ different salt.
Unlike your :setting:`SECRET_KEY`, your salt argument does not need to stay Unlike your :setting:`SECRET_KEY`, your salt argument does not need to stay
secret. secret.
.. versionchanged:: 3.2
The ``sign_object()`` and ``unsign_object()`` methods were added.
Verifying timestamped values Verifying timestamped values
---------------------------- ----------------------------
@ -180,15 +172,11 @@ created within a specified period of time::
.. method:: sign_object(obj, serializer=JSONSerializer, compress=False) .. method:: sign_object(obj, serializer=JSONSerializer, compress=False)
.. versionadded:: 3.2
Encode, optionally compress, append current timestamp, and sign complex Encode, optionally compress, append current timestamp, and sign complex
data structure (e.g. list, tuple, or dictionary). data structure (e.g. list, tuple, or dictionary).
.. method:: unsign_object(signed_obj, serializer=JSONSerializer, max_age=None) .. method:: unsign_object(signed_obj, serializer=JSONSerializer, max_age=None)
.. versionadded:: 3.2
Checks if ``signed_obj`` was signed less than ``max_age`` seconds ago, Checks if ``signed_obj`` was signed less than ``max_age`` seconds ago,
otherwise raises ``SignatureExpired``. The ``max_age`` parameter can otherwise raises ``SignatureExpired``. The ``max_age`` parameter can
accept an integer or a :py:class:`datetime.timedelta` object. accept an integer or a :py:class:`datetime.timedelta` object.
@ -237,7 +225,3 @@ and tuples) if you pass in a tuple, you will get a list from
Reverse of ``dumps()``, raises ``BadSignature`` if signature fails. Reverse of ``dumps()``, raises ``BadSignature`` if signature fails.
Checks ``max_age`` (in seconds) if given. Checks ``max_age`` (in seconds) if given.
.. versionchanged:: 3.2
The ``sign_object()`` and ``unsign_object()`` methods were added.

View File

@ -600,10 +600,6 @@ and tear down the test suite.
custom arguments by calling ``parser.add_argument()`` inside the method, so custom arguments by calling ``parser.add_argument()`` inside the method, so
that the :djadmin:`test` command will be able to use those arguments. that the :djadmin:`test` command will be able to use those arguments.
.. versionadded:: 3.2
The ``enable_faulthandler`` and ``timing`` arguments were added.
.. versionadded:: 4.0 .. versionadded:: 4.0
The ``logger`` and ``shuffle`` arguments were added. The ``logger`` and ``shuffle`` arguments were added.
@ -783,11 +779,6 @@ utility methods in the ``django.test.utils`` module.
:ref:`serialized_rollback <test-case-serialized-rollback>` feature. If :ref:`serialized_rollback <test-case-serialized-rollback>` feature. If
it's not provided, it defaults to ``aliases``. it's not provided, it defaults to ``aliases``.
.. versionchanged:: 3.2
The ``time_keeper`` kwarg was added, and all kwargs were made
keyword-only.
.. versionchanged:: 4.0 .. versionchanged:: 4.0
The ``serialized_aliases`` kwarg was added. The ``serialized_aliases`` kwarg was added.

View File

@ -868,18 +868,12 @@ It also provides an additional method:
(for instance, MySQL with the MyISAM engine), ``setUpTestData()`` will be (for instance, MySQL with the MyISAM engine), ``setUpTestData()`` will be
called before each test, negating the speed benefits. called before each test, negating the speed benefits.
.. versionchanged:: 3.2 Objects assigned to class attributes in ``setUpTestData()`` must support
creating deep copies with :py:func:`copy.deepcopy` in order to isolate them
Objects assigned to class attributes in ``setUpTestData()`` must from alterations performed by each test methods.
support creating deep copies with :py:func:`copy.deepcopy` in order to
isolate them from alterations performed by each test methods. In
previous versions of Django these objects were reused and changes made
to them were persisted between test methods.
.. classmethod:: TestCase.captureOnCommitCallbacks(using=DEFAULT_DB_ALIAS, execute=False) .. classmethod:: TestCase.captureOnCommitCallbacks(using=DEFAULT_DB_ALIAS, execute=False)
.. versionadded:: 3.2
Returns a context manager that captures :func:`transaction.on_commit() Returns a context manager that captures :func:`transaction.on_commit()
<django.db.transaction.on_commit>` callbacks for the given database <django.db.transaction.on_commit>` callbacks for the given database
connection. It returns a list that contains, on exit of the context, the connection. It returns a list that contains, on exit of the context, the
@ -1706,14 +1700,6 @@ your test suite.
Output in case of error can be customized with the ``msg`` argument. Output in case of error can be customized with the ``msg`` argument.
.. versionchanged:: 3.2
The default value of ``transform`` argument was changed to ``None``.
.. versionadded:: 3.2
Support for direct comparison between querysets was added.
.. deprecated:: 3.2 .. deprecated:: 3.2
If ``transform`` is not provided and ``values`` is a list of strings, If ``transform`` is not provided and ``values`` is a list of strings,