Django 6.1 release notes - UNDER DEVELOPMENT¶
Expected August 2026
Welcome to Django 6.1!
These release notes cover the new features, as well as some backwards incompatible changes you’ll want to be aware of when upgrading from Django 6.0 or earlier. We’ve begun the deprecation process for some features.
See the How to upgrade Django to a newer 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.
What’s new in Django 6.1¶
Minor features¶
django.contrib.admin
¶
…
django.contrib.admindocs
¶
…
django.contrib.auth
¶
The default iteration count for the PBKDF2 password hasher is increased from 1,200,000 to 1,500,000.
django.contrib.contenttypes
¶
…
django.contrib.gis
¶
…
django.contrib.messages
¶
…
django.contrib.postgres
¶
…
django.contrib.redirects
¶
…
django.contrib.sessions
¶
…
django.contrib.sitemaps
¶
…
django.contrib.sites
¶
…
django.contrib.staticfiles
¶
…
Asynchronous views¶
…
Cache¶
…
CSP¶
…
CSRF¶
…
Decorators¶
…
Email¶
…
Error Reporting¶
…
File Storage¶
…
File Uploads¶
…
Forms¶
…
Generic Views¶
…
Internationalization¶
…
Logging¶
…
Management Commands¶
…
Migrations¶
…
Models¶
…
Pagination¶
…
Requests and Responses¶
…
Security¶
…
Serialization¶
…
Signals¶
…
Tasks¶
…
Templates¶
…
Tests¶
…
URLs¶
…
Utilities¶
…
Validators¶
…
Backwards incompatible changes in 6.1¶
Database backend API¶
This section describes changes that may be needed in third-party database backends.
…
Miscellaneous¶
GenericForeignKey
now uses a separate descriptor class: the privateGenericForeignKeyDescriptor
.
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 Features deprecated in 5.2 for details on these changes, including how to remove usage of these features.
The
all
parameter for thedjango.contrib.staticfiles.finders.find()
function is removed in favor of thefind_all
parameter.Fallbacks to
request.user
andrequest.auser()
whenuser
isNone
indjango.contrib.auth.login()
anddjango.contrib.auth.alogin()
, respectively, are removed.The
ordering
keyword parameter of the PostgreSQL specific aggregation functionsdjango.contrib.postgres.aggregates.ArrayAgg
,django.contrib.postgres.aggregates.JSONBAgg
, anddjango.contrib.postgres.aggregates.StringAgg
are removed in favor of theorder_by
parameter.Support for subclasses of
RemoteUserMiddleware
that overrideprocess_request()
without overridingaprocess_request()
is removed.