티스토리 수익 글 보기
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¶
Model field fetch modes¶
The on-demand fetching behavior of model fields is now configurable with fetch modes. These modes allow you to control how Django fetches data from the database when an unfetched field is accessed.
Django provides three fetch modes:
FETCH_ONE
, the default, fetches the missing field for the current instance only. This mode represents Django’s existing behavior.FETCH_PEERS
fetches a missing field for all instances that came from the sameQuerySet
.This mode works like an on-demand
prefetch_related()
. It can reduce most cases of the “N+1 queries problem” to two queries without any work to maintain a list of fields to prefetch.RAISE
raises aFieldFetchBlocked
exception.This mode can prevent unintentional queries in performance-critical sections of code.
Use the new method QuerySet.fetch_mode()
to set the fetch mode for model
instances fetched by the QuerySet
:
from django.db import models
books = Book.objects.fetch_mode(models.FETCH_PEERS)
for book in books:
print(book.author.name)
Despite the loop accessing the author
foreign key on each instance, the
FETCH_PEERS
fetch mode will make the above example perform only two
queries:
Fetch all books.
Fetch associated authors.
See fetch modes for more details.
Database-level delete options for ForeignKey.on_delete
¶
ForeignKey.on_delete
now supports database-level delete options:
These options handle deletion logic entirely within the database, using the SQL
ON DELETE
clause. They are thus more efficient than the existing
Python-level options, as Django does not need to load objects before deleting
them. As a consequence, the DB_CASCADE
option does
not trigger the pre_delete
or post_delete
signals.
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
¶
…
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¶
QuerySet.in_bulk()
now supports chaining afterQuerySet.values()
andQuerySet.values_list()
.
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.
The
DatabaseOperations.adapt_durationfield_value()
hook is added. If the database has native support forDurationField
, override this method to simply return the value.
django.contrib.gis
¶
Support for PostGIS 3.1 is removed.
Dropped support for PostgreSQL 14¶
Upstream support for PostgreSQL 14 ends in November 2026. Django 6.1 supports PostgreSQL 15 and higher.
Miscellaneous¶
GenericForeignKey
now uses a separate descriptor class: the privateGenericForeignKeyDescriptor
.
Features deprecated in 6.1¶
Miscellaneous¶
Calling
QuerySet.values_list()
withflat=True
and no field name is deprecated. Pass an explicit field name, likevalues_list("pk", flat=True)
.
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.
Additional Information
Support Django!
Contents
- Django 6.1 release notes – UNDER DEVELOPMENT
- Python compatibility
- What’s new in Django 6.1
- Model field fetch modes
- Database-level delete options for
ForeignKey.on_delete
- Minor features
django.contrib.admin
django.contrib.admindocs
django.contrib.auth
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
django.contrib.syndication
- Asynchronous views
- Cache
- CSP
- CSRF
- Decorators
- 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
- Features deprecated in 6.1
- Features removed in 6.1
Getting help
- FAQ
- Try the FAQ — it’s got answers to many common questions.
- Index, Module Index, or Table of Contents
- Handy when looking for specific information.
- Django Discord Server
- Join the Django Discord Community.
- Official Django Forum
- Join the community on the Django Forum.
- Ticket tracker
- Report bugs with Django or Django documentation in our ticket tracker.
Download:
Offline (development version):
HTML |
PDF |
ePub
Provided by Read the Docs.