Expected December 2025
欢迎来到Django 6.0!
这些发行说明涵盖了 new features ,以及一些 backwards incompatible changes 从Django 5.2或更早版本升级时您需要注意这一点。我们 begun the deprecation process for some features .
见 如何将Django升级到更新版本 如果正在更新现有项目,则提供指南。
Django 6.0支持Python 3.12和3.13。我们 highly recommend 并且仅正式支持每个系列的最新版本。
Django 5.2.x系列是最后一个支持Python 3.10和3.11的系列。
Django 6.0发布后,我们建议第三方应用程序作者放弃对Django 5.2之前所有版本的支持。那时,您应该能够使用运行包的测试 python -Wd
以便出现弃用警告。修复弃用警告后,您的应用程序应该与Django 6.0兼容。
django.contrib.admin
¶Font Awesome Free图标集(版本6.7.2)现在用于管理界面图标。
django.contrib.admindocs
¶新 AdminSite.password_change_form
属性允许自定义管理站点密码更改视图中使用的表单。
django.contrib.auth
¶PBKDF 2密码哈希器的默认迭代计数从1,000,000增加到1,200,000。
django.contrib.contenttypes
¶..。
django.contrib.gis
¶新 GEOSGeometry.hasm
属性检查几何图形是否具有M维度。
新 Rotate
数据库函数将几何图形绕原点或指定点旋转指定角度。
django.contrib.messages
¶..。
django.contrib.postgres
¶..。
django.contrib.redirects
¶..。
django.contrib.sessions
¶..。
django.contrib.sitemaps
¶..。
django.contrib.sites
¶..。
django.contrib.staticfiles
¶..。
..。
..。
..。
..。
..。
..。
..。
..。
..。
..。
..。
的 startproject
和 startapp
如果自定义目标目录不存在,命令现在会创建该目录。
现在,被挤压的迁移本身可以在过渡到正常迁移之前被挤压。
迁移现在支持序列化 zoneinfo.ZoneInfo
实例.
可解构对象的序列化现在支持名称不是有效Python标识符的关键字参数。
Constraints 现在实施一个 check()
已向检查框架注册的方法。
新 order_by
论据 Aggregate
允许指定结果中元素的顺序。
新 Aggregate.allow_order_by
类属性确定聚合函数是否允许传递 order_by
关键字参数。
新 StringAgg
聚合返回连接到字符串中的输入值,用 delimiter
string.此聚合以前仅支持PostgreSQL。
的 save()
方法现在引发一个专用的 Model.NotUpdated
例外,当 a forced update 导致不受影响的行,而不是通用行 django.db.DatabaseError
.
QuerySet.raw()
现在支持具有 CompositePrimaryKey
.
JSONField
现在支持 negative array indexing 在SQLite上。
新 AnyValue
聚合从非空输入值返回任意值。SQLite、SQL、Oracle和PostgreSQL 16+上支持这一点。
新 AsyncPaginator
和 AsyncPage
提供以下的可编程实现 Paginator
和 Page
分别
..。
..。
..。
..。
新变量 forloop.length
现在可以在一个 for
循环.
的 querystring
模板标签现在一致地在返回的查询字符串前加上 ?
,确保可靠的链接生成行为。
的 querystring
模板标签现在接受多个位置参数,这些参数必须是映射,例如 QueryDict
或 dict
.
..。
..。
..。
..。
本节描述第三方数据库后端可能需要的更改。
BaseDatabaseCreation.create_test_db(serialize)
已经过时了使用 serialize_db_to_string()
而不是.
BaseDatabaseSchemaEditor
和PostgreSQL后台不再使用 CASCADE
当掉落专栏时。
MariaDB 10.5的上游支持将于2025年6月结束。Django 6.0支持MariaDB 10.6及更高版本。
由于Python 3.12现在是Django支持的最低版本,因此任何可选的依赖项也必须满足该要求。每个库的以下版本是第一个添加或确认与Python 3.12兼容性的版本:
aiosmtpd
1.4.5
argon2-cffi
23.1.0
bcrypt
4.1.1
geoip2
4.8.0
Pillow
10.1.0
mysqlclient
2.2.1
numpy
1.26.0
PyYAML
6.0.2
psycopg
3.1.12
psycopg2
2.9.9
redis-py
5.1.0
selenium
4.23.0
sqlparse
0.5.0
tblib
3.0.0
的 JSON 序列化程序现在在输出的末尾写入一个换行符,即使没有 indent
选项集。
无证 django.utils.http.parse_header_parameters()
函数已被重构以使用Python的 email.message.Message
用于解析。超过10000个字符的输入标题现在将出现 ValueError
.
BaseDatabaseCreation.create_test_db(serialize)
已经过时了使用 serialize_db_to_string()
而不是.
的PostgreSQL StringAgg
类已被弃用,转而支持普遍可用的 StringAgg
课
的PostgreSQL OrderableAggMixin
被反对支持 order_by
属性现已在 Aggregate
课
中的默认协议 urlize
和 urlizetrunc
在Django 7.0中将从HTTP更改为HTTPS。设置过渡设置 URLIZE_ASSUME_HTTPS
到 True
在Django 6.x发布周期期间选择采用HTTPS。
URLIZE_ASSUME_HTTPS
不建议使用过渡设置。
设置 ADMINS
或 MANAGERS
不建议添加到(名称、地址)二元组列表。改为设置为电子邮件地址字符串列表。Django从未使用过姓名部分。要包含名称,请将地址字符串格式为 '"Name" <address>'
或使用Python的 email.utils.formataddr()
.
支持 orphans
参数大于或等于 per_page
论点 django.core.paginator.Paginator
和 django.core.paginator.AsyncPaginator
已经过时了
这些功能已达到弃用周期的末尾,并在Django 6.0中删除。
看到 5.0中弃用的功能 有关这些更改的详细信息,包括如何删除这些功能的使用。
支持将立场论点传递给 BaseConstraint
被移除。
的 DjangoDivFormRenderer
和 Jinja2DivFormRenderer
过渡形式渲染器被删除。
BaseDatabaseOperations.field_cast_sql()
被移除。
request
需要签署 ModelAdmin.lookup_allowed()
亚类。
支持呼叫 format_html()
不经过args或kwargs被删除。
的默认方案 forms.URLField
由 "http"
到 "https"
.
的 FORMS_URLFIELD_ASSUME_HTTPS
过渡设置被删除。
的 django.db.models.sql.datastructures.Join
不再退回到 get_joining_columns()
.
的 get_joining_columns()
方法 ForeignObject
和 ForeignObjectRel
被移除。
的 ForeignObject.get_reverse_joining_columns()
方法被删除。
支持 cx_Oracle
被移除。
的 ChoicesMeta
别名来 django.db.models.enums.ChoicesType
被移除。
的 Prefetch.get_current_queryset()
方法被删除。
的 get_prefetch_queryset()
删除了相关管理器和描述符的方法。
get_prefetcher()
和 prefetch_related_objects()
不再退回到 get_prefetch_queryset()
.
看到 5.1中弃用的功能 有关这些更改的详细信息,包括如何删除这些功能的使用。
django.urls.register_converter()
不再允许覆盖现有转换器。
的 ModelAdmin.log_deletion()
和 LogEntryManager.log_action()
方法被删除。
无证 django.utils.itercompat.is_iterable()
功能和 django.utils.itercompat
模块已删除。
的 django.contrib.gis.geoip2.GeoIP2.coords()
方法被删除。
的 django.contrib.gis.geoip2.GeoIP2.open()
方法被删除。
支持将立场论点传递给 Model.save()
和 Model.asave()
被移除。
二传手 django.contrib.gis.gdal.OGRGeometry.coord_dim
被移除。
的 check
关键字参数 CheckConstraint
被移除。
的 get_cache_name()
方法 FieldCacheMixin
被移除。
的 OS_OPEN_FLAGS
属性 FileSystemStorage
被移除。
5月 28, 2025