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