Django 4.2 发行说明¶
2023 年 4 月 3 日
欢迎使用 Django 4.2!
这些发行说明涵盖了新功能,以及从 Django 4.1 或更早版本升级时您需要注意的一些向后不兼容的更改。我们已经 开始了一些功能的弃用过程。
如果您要更新现有项目,请参阅如何将 Django 升级到更新版本指南。
Django 4.2 被指定为长期支持版本。它将在发布后至少三年内收到安全更新。对之前的 LTS Django 3.2 的支持将于 2024 年 4 月结束。
Python 兼容性¶
Django 4.2 支持 Python 3.8、3.9、3.10 和 3.11。我们强烈推荐 并且只正式支持每个系列的最新版本。
Django 4.2 中的新功能¶
Psycopg 3 支持¶
Django 现在支持psycopg 3.1.8 或更高版本。要更新您的代码,请安装psycopg 库,您无需更改, ENGINE因为django.db.backends.postgresql 它支持这两个库。
对的支持psycopg2可能会在将来的某个时候被弃用和删除。
请注意,psycopg3 在 .x 基础上引入了一些重大变化psycopg2。因此,您可能需要进行一些更改以解决 与 psycopg2 的差异。
对列和表的评论¶
新的Field.db_comment和 Meta.db_table_comment 选项允许分别在列和表上创建注释。例如:
from django.db import models
class Question(models.Model):
text = models.TextField(db_comment=“Poll question”)
pub_date = models.DateTimeField(
db_comment=“Date and time when the question was published”,
)
class Meta:
db_table_comment = "Poll questions"
class Answer(models.Model):
question = models.ForeignKey(
Question,
on_delete=models.CASCADE,
db_comment=“Reference to a question”,
)
answer = models.TextField(db_comment=“Question answer”)
class Meta:
db_table_comment = "Question answers"
此外,新AlterModelTableComment 操作允许更改 Meta.db_table_comment.
BREACH 攻击的缓解措施¶
GZipMiddleware现在包括对 BREACH 攻击的缓解。它会将最多 100 个随机字节添加到 gzip 响应中,使 BREACH 攻击更加困难。在Heal The Breach (HTB) 论文中阅读有关缓解技术的更多信息。
内存文件存储¶
新django.core.files.storage.InMemoryStorage类提供了一种非持久性存储,可通过避免磁盘访问来加快测试速度。
自定义文件存储¶
新STORAGES设置允许配置多个自定义文件存储后端。它还控制用于管理 文件("default"密钥)和静态文件("staticfiles"密钥)的存储引擎。
从此版本开始,旧的DEFAULT_FILE_STORAGE和设置已弃用。STATICFILES_STORAGE
次要功能¶
django.contrib.admin¶
管理员的浅色或深色主题现在可以在 UI 中切换,也可以设置为遵循系统设置。
管理员的字体堆栈现在更喜欢系统 UI 字体,不再需要下载字体。此外,CSS 变量可用于更轻松地覆盖默认字体系列。
admin /delete_confirmation.html