mirror of
https://github.com/django/django.git
synced 2025-10-09 23:09:12 +00:00
co-authored-by: Adam Johnson <me@adamj.eu> co-authored-by: Simon Charette <charette.s@gmail.com>
292 lines
4.6 KiB
Plaintext
292 lines
4.6 KiB
Plaintext
============================================
|
|
Django 6.1 release notes - UNDER DEVELOPMENT
|
|
============================================
|
|
|
|
*Expected August 2026*
|
|
|
|
Welcome to Django 6.1!
|
|
|
|
These release notes cover the :ref:`new features <whats-new-6.1>`, as well as
|
|
some :ref:`backwards incompatible changes <backwards-incompatible-6.1>` you'll
|
|
want to be aware of when upgrading from Django 6.0 or earlier. We've
|
|
:ref:`begun the deprecation process for some features
|
|
<deprecated-features-6.1>`.
|
|
|
|
See the :doc:`/howto/upgrade-version` guide if you're updating an existing
|
|
project.
|
|
|
|
Python compatibility
|
|
====================
|
|
|
|
Django 6.1 supports Python 3.12, 3.13, and 3.14. We **highly recommend**, and
|
|
only officially support, the latest release of each series.
|
|
|
|
.. _whats-new-6.1:
|
|
|
|
What's new in Django 6.1
|
|
========================
|
|
|
|
Minor features
|
|
--------------
|
|
|
|
:mod:`django.contrib.admin`
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
:mod:`django.contrib.admindocs`
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
:mod:`django.contrib.auth`
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* The default iteration count for the PBKDF2 password hasher is increased from
|
|
1,200,000 to 1,500,000.
|
|
|
|
:mod:`django.contrib.contenttypes`
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
:mod:`django.contrib.gis`
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* The :lookup:`isempty` lookup and
|
|
:class:`IsEmpty() <django.contrib.gis.db.models.functions.IsEmpty>`
|
|
database function are now supported on SpatiaLite.
|
|
|
|
: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
|
|
~~~~~
|
|
|
|
* ...
|
|
|
|
CSP
|
|
~~~
|
|
|
|
* ...
|
|
|
|
CSRF
|
|
~~~~
|
|
|
|
* ...
|
|
|
|
Decorators
|
|
~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Email
|
|
~~~~~
|
|
|
|
* ...
|
|
|
|
Error Reporting
|
|
~~~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
File Storage
|
|
~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
File Uploads
|
|
~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Forms
|
|
~~~~~
|
|
|
|
* ...
|
|
|
|
Generic Views
|
|
~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Internationalization
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Logging
|
|
~~~~~~~
|
|
|
|
* ...
|
|
|
|
Management Commands
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Migrations
|
|
~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Models
|
|
~~~~~~
|
|
|
|
* :meth:`.QuerySet.in_bulk` now supports chaining after
|
|
:meth:`.QuerySet.values` and :meth:`.QuerySet.values_list`.
|
|
|
|
Pagination
|
|
~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Requests and Responses
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Security
|
|
~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Serialization
|
|
~~~~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Signals
|
|
~~~~~~~
|
|
|
|
* ...
|
|
|
|
Tasks
|
|
~~~~~
|
|
|
|
* ...
|
|
|
|
Templates
|
|
~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Tests
|
|
~~~~~
|
|
|
|
* ...
|
|
|
|
URLs
|
|
~~~~
|
|
|
|
* ...
|
|
|
|
Utilities
|
|
~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
Validators
|
|
~~~~~~~~~~
|
|
|
|
* ...
|
|
|
|
.. _backwards-incompatible-6.1:
|
|
|
|
Backwards incompatible changes in 6.1
|
|
=====================================
|
|
|
|
Database backend API
|
|
--------------------
|
|
|
|
This section describes changes that may be needed in third-party database
|
|
backends.
|
|
|
|
* The ``DatabaseOperations.adapt_durationfield_value()`` hook is added. If the
|
|
database has native support for ``DurationField``, override this method to
|
|
simply return the value.
|
|
|
|
Miscellaneous
|
|
-------------
|
|
|
|
* :class:`~django.contrib.contenttypes.fields.GenericForeignKey` now uses a
|
|
separate descriptor class: the private ``GenericForeignKeyDescriptor``.
|
|
|
|
.. _deprecated-features-6.1:
|
|
|
|
Features deprecated in 6.1
|
|
==========================
|
|
|
|
Miscellaneous
|
|
-------------
|
|
|
|
* ...
|
|
|
|
Features removed in 6.1
|
|
=======================
|
|
|
|
These features have reached the end of their deprecation cycle and are removed
|
|
in Django 6.1.
|
|
|
|
See :ref:`deprecated-features-5.2` for details on these changes, including how
|
|
to remove usage of these features.
|
|
|
|
* The ``all`` parameter for the ``django.contrib.staticfiles.finders.find()``
|
|
function is removed in favor of the ``find_all`` parameter.
|
|
|
|
* Fallbacks to ``request.user`` and ``request.auser()`` when ``user`` is
|
|
``None`` in ``django.contrib.auth.login()`` and
|
|
``django.contrib.auth.alogin()``, respectively, are removed.
|
|
|
|
* The ``ordering`` keyword parameter of the PostgreSQL specific aggregation
|
|
functions ``django.contrib.postgres.aggregates.ArrayAgg``,
|
|
``django.contrib.postgres.aggregates.JSONBAgg``, and
|
|
``django.contrib.postgres.aggregates.StringAgg`` are removed in favor
|
|
of the ``order_by`` parameter.
|
|
|
|
* Support for subclasses of ``RemoteUserMiddleware`` that override
|
|
``process_request()`` without overriding ``aprocess_request()`` is
|
|
removed.
|