# Django 5.2.8 documentation

# Django 3.0.3 版本发行说明

2020 年 2 月 3 日

Django 3.0.3 修复了 3.0.2 版本中的一个安全问题和多个错误。

## CVE-2020-7471: 通过 `StringAgg(delimiter)` 可能存在 SQL 注入风险。

`StringAgg` 聚合函数存在 SQL 注入风险，使用适当构造的 `delimiter`。

## 漏洞修复

- 修复了 Django 3.0 中的一个回归问题，该问题导致在从 `Subquery()` 注释中减去 `DateField`、`DateTimeField` 或 `TimeField` 时崩溃 (#31133)。

- 修复了 Django 3.0 中的一个回归问题，该问题导致如果查询集中包含聚合和 `Exists()` 注释，那么 `QuerySet.values()` 和 `values_list()` 会崩溃 (#31136)。

- 在 Django 3.0 中放宽了系统检查，允许在 `LANGUAGE_CODE` 设置中使用子语言，当 Django 中有基本语言可用但子语言不可用时 (#31141)。

- 添加了在模板中使用枚举类型 `TextChoices`、`IntegerChoices` 和 `Choices` 的支持 (#31154)。

- 修复了一个系统检查，以确保当一个命名组只包含非字符串值时，`max_length` 属性适合最长的选择 (#31155)。

- 修复了 Django 2.2 中的一个回归问题，当在 `Subquery` 中使用带有 `filter` 参数的 `ArrayAgg` 和 `StringAgg` 时导致崩溃 (#31097)。

- 修复了 Django 2.2.7 中的一个回归问题，当覆盖继承的选择项时，导致 `get_FOO_display()` 不正确工作 (#31124)。

- 修复了 Django 3.0 中的一个回归问题，该问题导致在具有自定义 `ContentType` 外键的 `GenericForeignKey` 上使用 `QuerySet.prefetch_related()` 时崩溃 (#31190)。