summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlton Gibson <carlton.gibson@noumenal.es>2021-04-06 11:20:59 +0200
committerCarlton Gibson <carlton.gibson@noumenal.es>2021-04-06 11:21:32 +0200
commit8df29fc733b3eddde72f31cac51cedabcc68206b (patch)
treeaf5aa4dde5f28acebde410c2fa709e3252851ac1
parent09c0b1a8fc1c79922188712831ebf439a1fb6a07 (diff)
downloaddjango-8df29fc733b3eddde72f31cac51cedabcc68206b.tar.gz
[3.2.x] Added release date for Django 3.2.
Adjusted wrapping in release notes where needed. Backport of 0802b404a210862e6765a6c7dee6cba61085d7a6 from main
-rw-r--r--docs/releases/3.2.txt109
1 files changed, 55 insertions, 54 deletions
diff --git a/docs/releases/3.2.txt b/docs/releases/3.2.txt
index f094932626..668dcee3b7 100644
--- a/docs/releases/3.2.txt
+++ b/docs/releases/3.2.txt
@@ -1,8 +1,8 @@
-============================================
-Django 3.2 release notes - UNDER DEVELOPMENT
-============================================
+========================
+Django 3.2 release notes
+========================
-*Expected April 2021*
+*April 6, 2021*
Welcome to Django 3.2!
@@ -169,11 +169,11 @@ Minor features
:mod:`django.contrib.admin`
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* :attr:`.ModelAdmin.search_fields` now allows searching against quoted phrases
- with spaces.
+* :attr:`.ModelAdmin.search_fields` now allows searching against quoted
+ phrases with spaces.
-* Read-only related fields are now rendered as navigable links if target models
- are registered in the admin.
+* Read-only related fields are now rendered as navigable links if target
+ models are registered in the admin.
* The admin now supports theming, and includes a dark theme that is enabled
according to browser settings. See :ref:`admin-theming` for more details.
@@ -341,8 +341,8 @@ Generic Views
Management Commands
~~~~~~~~~~~~~~~~~~~
-* :djadmin:`loaddata` now supports fixtures stored in XZ archives (``.xz``) and
- LZMA archives (``.lzma``).
+* :djadmin:`loaddata` now supports fixtures stored in XZ archives (``.xz``)
+ and LZMA archives (``.lzma``).
* :djadmin:`dumpdata` now can compress data in the ``bz2``, ``gz``, ``lzma``,
or ``xz`` formats.
@@ -351,10 +351,10 @@ Management Commands
connection. In that case, check for a consistent migration history is
skipped.
-* :attr:`.BaseCommand.requires_system_checks` now supports specifying a list of
- tags. System checks registered in the chosen tags will be checked for errors
- prior to executing the command. In previous versions, either all or none
- of the system checks were performed.
+* :attr:`.BaseCommand.requires_system_checks` now supports specifying a list
+ of tags. System checks registered in the chosen tags will be checked for
+ errors prior to executing the command. In previous versions, either all or
+ none of the system checks were performed.
* Support for colored terminal output on Windows is updated. Various modern
terminal environments are automatically detected, and the options for
@@ -382,14 +382,14 @@ Models
using the ``condition`` argument with ``lookups``.
* The new :attr:`.Index.include` and :attr:`.UniqueConstraint.include`
- attributes allow creating covering indexes and covering unique constraints on
- PostgreSQL 11+.
+ attributes allow creating covering indexes and covering unique constraints
+ on PostgreSQL 11+.
* The new :attr:`.UniqueConstraint.opclasses` attribute allows setting
PostgreSQL operator classes.
-* The :meth:`.QuerySet.update` method now respects the ``order_by()`` clause on
- MySQL and MariaDB.
+* The :meth:`.QuerySet.update` method now respects the ``order_by()`` clause
+ on MySQL and MariaDB.
* :class:`FilteredRelation() <django.db.models.FilteredRelation>` now supports
nested relations.
@@ -448,16 +448,16 @@ Pagination
~~~~~~~~~~
* The new :meth:`django.core.paginator.Paginator.get_elided_page_range` method
- allows generating a page range with some of the values elided. If there are a
- large number of pages, this can be helpful for generating a reasonable number
- of page links in a template.
+ allows generating a page range with some of the values elided. If there are
+ a large number of pages, this can be helpful for generating a reasonable
+ number of page links in a template.
Requests and Responses
~~~~~~~~~~~~~~~~~~~~~~
-* Response headers are now stored in :attr:`.HttpResponse.headers`. This can be
- used instead of the original dict-like interface of ``HttpResponse`` objects.
- Both interfaces will continue to be supported. See
+* Response headers are now stored in :attr:`.HttpResponse.headers`. This can
+ be used instead of the original dict-like interface of ``HttpResponse``
+ objects. Both interfaces will continue to be supported. See
:ref:`setting-header-fields` for details.
* The new ``headers`` parameter of :class:`~django.http.HttpResponse`,
@@ -468,17 +468,17 @@ Requests and Responses
Security
~~~~~~~~
-* The :setting:`SECRET_KEY` setting is now checked for a valid value upon first
- access, rather than when settings are first loaded. This enables running
- management commands that do not rely on the ``SECRET_KEY`` without needing to
- provide a value. As a consequence of this, calling
+* The :setting:`SECRET_KEY` setting is now checked for a valid value upon
+ first access, rather than when settings are first loaded. This enables
+ running management commands that do not rely on the ``SECRET_KEY`` without
+ needing to provide a value. As a consequence of this, calling
:func:`~django.conf.settings.configure` without providing a valid
``SECRET_KEY``, and then going on to access ``settings.SECRET_KEY`` will now
raise an :exc:`~django.core.exceptions.ImproperlyConfigured` exception.
-* The new ``Signer.sign_object()`` and ``Signer.unsign_object()`` methods allow
- signing complex data structures. See :ref:`signing-complex-data` for more
- details.
+* The new ``Signer.sign_object()`` and ``Signer.unsign_object()`` methods
+ allow signing complex data structures. See :ref:`signing-complex-data` for
+ more details.
Also, :func:`signing.dumps() <django.core.signing.dumps>` and
:func:`~django.core.signing.loads` become shortcuts for
@@ -535,22 +535,22 @@ Tests
* :meth:`.TransactionTestCase.assertQuerysetEqual` now supports direct
comparison against another queryset rather than being restricted to
- comparison against a list of string representations of objects when using the
- default value for the ``transform`` argument.
+ comparison against a list of string representations of objects when using
+ the default value for the ``transform`` argument.
Utilities
~~~~~~~~~
* The new ``depth`` parameter of ``django.utils.timesince.timesince()`` and
- ``django.utils.timesince.timeuntil()`` functions allows specifying the number
- of adjacent time units to return.
+ ``django.utils.timesince.timeuntil()`` functions allows specifying the
+ number of adjacent time units to return.
Validators
~~~~~~~~~~
-* Built-in validators now include the provided value in the ``params`` argument
- of a raised :exc:`~django.core.exceptions.ValidationError`. This allows
- custom error messages to use the ``%(value)s`` placeholder.
+* Built-in validators now include the provided value in the ``params``
+ argument of a raised :exc:`~django.core.exceptions.ValidationError`. This
+ allows custom error messages to use the ``%(value)s`` placeholder.
* The :class:`.ValidationError` equality operator now ignores ``messages`` and
``params`` ordering.
@@ -566,8 +566,8 @@ Database backend API
This section describes changes that may be needed in third-party database
backends.
-* The new ``DatabaseFeatures.introspected_field_types`` property replaces these
- features:
+* The new ``DatabaseFeatures.introspected_field_types`` property replaces
+ these features:
* ``can_introspect_autofield``
* ``can_introspect_big_integer_field``
@@ -608,8 +608,8 @@ backends.
* Third-party database backends must implement support for functional indexes
(:attr:`.Index.expressions`) or set
- ``DatabaseFeatures.supports_expression_indexes`` to ``False``. If ``COLLATE``
- is not a part of the ``CREATE INDEX`` statement, set
+ ``DatabaseFeatures.supports_expression_indexes`` to ``False``. If
+ ``COLLATE`` is not a part of the ``CREATE INDEX`` statement, set
``DatabaseFeatures.collate_as_index_expression`` to ``True``.
:mod:`django.contrib.admin`
@@ -626,8 +626,9 @@ backends.
* Minified JavaScript files are no longer included with the admin. If you
require these files to be minified, consider using a third party app or
- external build tool. The minified vendored JavaScript files packaged with the
- admin (e.g. :ref:`jquery.min.js <contrib-admin-jquery>`) are still included.
+ external build tool. The minified vendored JavaScript files packaged with
+ the admin (e.g. :ref:`jquery.min.js <contrib-admin-jquery>`) are still
+ included.
* :attr:`.ModelAdmin.prepopulated_fields` no longer strips English stop words,
such as ``'a'`` or ``'an'``.
@@ -683,9 +684,9 @@ Miscellaneous
* When an application defines an :class:`~django.apps.AppConfig` subclass in
an ``apps.py`` submodule, Django now uses this configuration automatically,
- even if it isn't enabled with ``default_app_config``. Set ``default = False``
- in the :class:`~django.apps.AppConfig` subclass if you need to prevent this
- behavior. See :ref:`whats-new-3.2` for more details.
+ even if it isn't enabled with ``default_app_config``. Set
+ ``default = False`` in the :class:`~django.apps.AppConfig` subclass if you
+ need to prevent this behavior. See :ref:`whats-new-3.2` for more details.
* Instantiating an abstract model now raises ``TypeError``.
@@ -716,12 +717,12 @@ Miscellaneous
* The password reset mechanism now invalidates tokens when the user email is
changed.
-* :djadmin:`makemessages` command no longer processes invalid locales specified
- using :option:`makemessages --locale` option, when they contain hyphens
- (``'-'``).
+* :djadmin:`makemessages` command no longer processes invalid locales
+ specified using :option:`makemessages --locale` option, when they contain
+ hyphens (``'-'``).
-* The ``django.contrib.auth.forms.ReadOnlyPasswordHashField`` form field is now
- :attr:`~django.forms.Field.disabled` by default. Therefore
+* The ``django.contrib.auth.forms.ReadOnlyPasswordHashField`` form field is
+ now :attr:`~django.forms.Field.disabled` by default. Therefore
``UserChangeForm.clean_password()`` is no longer required to return the
initial value.
@@ -755,8 +756,8 @@ Miscellaneous
:meth:`.TestCase.setUpTestData` is deprecated.
* Using a boolean value in :attr:`.BaseCommand.requires_system_checks` is
- deprecated. Use ``'__all__'`` instead of ``True``, and ``[]`` (an empty list)
- instead of ``False``.
+ deprecated. Use ``'__all__'`` instead of ``True``, and ``[]`` (an empty
+ list) instead of ``False``.
* The ``whitelist`` argument and ``domain_whitelist`` attribute of
:class:`~django.core.validators.EmailValidator` are deprecated. Use