2023-09-08 08:54:07 +00:00
|
|
|
============================================
|
|
|
|
Django 5.1 release notes - UNDER DEVELOPMENT
|
|
|
|
============================================
|
|
|
|
|
|
|
|
*Expected August 2024*
|
|
|
|
|
|
|
|
Welcome to Django 5.1!
|
|
|
|
|
|
|
|
These release notes cover the :ref:`new features <whats-new-5.1>`, as well as
|
|
|
|
some :ref:`backwards incompatible changes <backwards-incompatible-5.1>` you'll
|
|
|
|
want to be aware of when upgrading from Django 5.0 or earlier. We've
|
|
|
|
:ref:`begun the deprecation process for some features
|
|
|
|
<deprecated-features-5.1>`.
|
|
|
|
|
|
|
|
See the :doc:`/howto/upgrade-version` guide if you're updating an existing
|
|
|
|
project.
|
|
|
|
|
|
|
|
Python compatibility
|
|
|
|
====================
|
|
|
|
|
|
|
|
Django 5.1 supports Python 3.10, 3.11, and 3.12. We **highly recommend** and
|
|
|
|
only officially support the latest release of each series.
|
|
|
|
|
|
|
|
.. _whats-new-5.1:
|
|
|
|
|
|
|
|
What's new in Django 5.1
|
|
|
|
========================
|
|
|
|
|
|
|
|
Minor features
|
|
|
|
--------------
|
|
|
|
|
|
|
|
:mod:`django.contrib.admin`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.admindocs`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.auth`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2023-09-15 08:54:10 +00:00
|
|
|
* The default iteration count for the PBKDF2 password hasher is increased from
|
|
|
|
720,000 to 870,000.
|
2023-09-08 08:54:07 +00:00
|
|
|
|
|
|
|
:mod:`django.contrib.contenttypes`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.gis`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.messages`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.postgres`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.redirects`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.sessions`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.sitemaps`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.sites`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.staticfiles`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.syndication`
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Asynchronous views
|
|
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Cache
|
|
|
|
~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
CSRF
|
|
|
|
~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Decorators
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Email
|
|
|
|
~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Error Reporting
|
|
|
|
~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
File Storage
|
|
|
|
~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
File Uploads
|
|
|
|
~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Forms
|
|
|
|
~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Generic Views
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Internationalization
|
|
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Logging
|
|
|
|
~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Management Commands
|
|
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Migrations
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Models
|
|
|
|
~~~~~~
|
|
|
|
|
2023-09-26 10:05:26 +00:00
|
|
|
* :meth:`.QuerySet.explain` now supports the ``generic_plan`` option on
|
|
|
|
PostgreSQL 16+.
|
2023-09-08 08:54:07 +00:00
|
|
|
|
|
|
|
Requests and Responses
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Security
|
|
|
|
~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Serialization
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Signals
|
|
|
|
~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Templates
|
|
|
|
~~~~~~~~~
|
|
|
|
|
2023-09-29 17:02:19 +00:00
|
|
|
* Custom tags may now set extra data on the ``Parser`` object that will later
|
|
|
|
be made available on the ``Template`` instance. Such data may be used, for
|
|
|
|
example, by the template loader, or other template clients.
|
2023-09-08 08:54:07 +00:00
|
|
|
|
|
|
|
Tests
|
|
|
|
~~~~~
|
|
|
|
|
2023-10-02 17:46:21 +00:00
|
|
|
* :meth:`~django.test.SimpleTestCase.assertContains`,
|
|
|
|
:meth:`~django.test.SimpleTestCase.assertNotContains`, and
|
|
|
|
:meth:`~django.test.SimpleTestCase.assertInHTML` assertions now add haystacks
|
|
|
|
to assertion error messages.
|
2023-09-08 08:54:07 +00:00
|
|
|
|
2023-10-18 19:40:50 +00:00
|
|
|
* The Django test runner now supports a ``--screenshots`` option to save
|
|
|
|
screenshots for Selenium tests.
|
2023-10-16 10:01:58 +00:00
|
|
|
|
2023-09-08 08:54:07 +00:00
|
|
|
URLs
|
|
|
|
~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Utilities
|
|
|
|
~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Validators
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
.. _backwards-incompatible-5.1:
|
|
|
|
|
|
|
|
Backwards incompatible changes in 5.1
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
Database backend API
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
This section describes changes that may be needed in third-party database
|
|
|
|
backends.
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
2023-09-20 11:45:51 +00:00
|
|
|
:mod:`django.contrib.gis`
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
* Support for PostGIS 2.5 is removed.
|
|
|
|
|
2023-09-19 13:06:05 +00:00
|
|
|
Dropped support for MariaDB 10.4
|
|
|
|
--------------------------------
|
|
|
|
|
|
|
|
Upstream support for MariaDB 10.4 ends in June 2024. Django 5.1 supports
|
|
|
|
MariaDB 10.5 and higher.
|
|
|
|
|
2023-09-20 11:45:51 +00:00
|
|
|
Dropped support for PostgreSQL 12
|
|
|
|
---------------------------------
|
|
|
|
|
|
|
|
Upstream support for PostgreSQL 12 ends in November 2024. Django 5.1 supports
|
|
|
|
PostgreSQL 13 and higher.
|
|
|
|
|
2023-09-08 08:54:07 +00:00
|
|
|
Miscellaneous
|
|
|
|
-------------
|
|
|
|
|
2023-09-25 01:16:56 +00:00
|
|
|
* In order to improve accessibility, the admin's changelist filter is now
|
|
|
|
rendered in a ``<nav>`` tag instead of a ``<div>``.
|
2023-09-08 08:54:07 +00:00
|
|
|
|
2023-10-03 07:25:48 +00:00
|
|
|
* :meth:`.SimpleTestCase.assertURLEqual` and
|
|
|
|
:meth:`~django.test.SimpleTestCase.assertInHTML` now add ``": "`` to the
|
|
|
|
``msg_prefix``. This is consistent with the behavior of other assertions.
|
|
|
|
|
2023-09-08 08:54:07 +00:00
|
|
|
.. _deprecated-features-5.1:
|
|
|
|
|
|
|
|
Features deprecated in 5.1
|
|
|
|
==========================
|
|
|
|
|
|
|
|
Miscellaneous
|
|
|
|
-------------
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Features removed in 5.1
|
|
|
|
=======================
|
|
|
|
|
|
|
|
These features have reached the end of their deprecation cycle and are removed
|
|
|
|
in Django 5.1.
|
|
|
|
|
|
|
|
See :ref:`deprecated-features-4.2` for details on these changes, including how
|
|
|
|
to remove usage of these features.
|
|
|
|
|
2023-09-11 19:57:31 +00:00
|
|
|
* The ``BaseUserManager.make_random_password()`` method is removed.
|
2023-09-12 03:56:16 +00:00
|
|
|
|
|
|
|
* The model's ``Meta.index_together`` option is removed.
|
2023-09-12 19:34:40 +00:00
|
|
|
|
|
|
|
* The ``length_is`` template filter is removed.
|
2023-09-12 19:44:53 +00:00
|
|
|
|
|
|
|
* The ``django.contrib.auth.hashers.SHA1PasswordHasher``,
|
|
|
|
``django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher``, and
|
|
|
|
``django.contrib.auth.hashers.UnsaltedMD5PasswordHasher`` are removed.
|
2023-09-13 12:03:45 +00:00
|
|
|
|
|
|
|
* The model ``django.contrib.postgres.fields.CICharField``,
|
|
|
|
``django.contrib.postgres.fields.CIEmailField``, and
|
|
|
|
``django.contrib.postgres.fields.CITextField`` are removed, except for
|
|
|
|
support in historical migrations.
|
|
|
|
|
|
|
|
* The ``django.contrib.postgres.fields.CIText`` mixin is removed.
|
2023-09-14 04:04:12 +00:00
|
|
|
|
|
|
|
* The ``map_width`` and ``map_height`` attributes of ``BaseGeometryWidget`` are
|
|
|
|
removed.
|
2023-09-14 10:39:20 +00:00
|
|
|
|
|
|
|
* The ``SimpleTestCase.assertFormsetError()`` method is removed.
|
2023-09-14 10:44:25 +00:00
|
|
|
|
|
|
|
* The ``TransactionTestCase.assertQuerysetEqual()`` method is removed.
|
2023-09-14 14:03:52 +00:00
|
|
|
|
|
|
|
* Support for passing encoded JSON string literals to ``JSONField`` and
|
|
|
|
associated lookups and expressions is removed.
|
2023-09-14 14:09:28 +00:00
|
|
|
|
|
|
|
* Support for passing positional arguments to ``Signer`` and
|
|
|
|
``TimestampSigner`` is removed.
|
2023-09-15 03:58:54 +00:00
|
|
|
|
|
|
|
* The ``DEFAULT_FILE_STORAGE`` and ``STATICFILES_STORAGE`` settings is removed.
|
|
|
|
|
|
|
|
* The ``django.core.files.storage.get_storage_class()`` function is removed.
|