Примечания к выпуску Django 3.0.3¶
3 февраля 2020 г.
Django 3.0.3 исправляет проблему безопасности и несколько ошибок в 3.0.2.
CVE-2020-7471: Потенциальная SQL-инъекция через StringAgg(delimiter)
¶
Функция агрегации StringAgg
была подвержена SQL-инъекции, если использовать соответствующим образом составленный delimiter
.
Исправления¶
- Исправлена регрессия в Django 3.0, которая приводила к сбою при вычитании
DateField
,DateTimeField
илиTimeField
из аннотацииSubquery()
(#31133). - Исправлена регрессия в Django 3.0, когда
QuerySet.values()
иvalues_list()
аварийно завершались, если кверисет содержал агрегацию и аннотациюExists()
(#31136). - Ослаблена проверка системы, добавленная в Django 3.0, чтобы разрешить использование подъязыка в настройке
LANGUAGE_CODE
, когда базовый язык доступен в Django, а подъязык - нет (#31141). - Добавлена поддержка использования типов перечислений
TextChoices
,IntegerChoices
иChoices
в шаблонах (#31154). - Исправлена проверка системы на соответствие атрибута
max_length
самому длинному выбору, когда именованная группа содержит только нестроковые значения (#31155). - Исправлена регрессия в Django 2.2, которая вызывала крах
ArrayAgg
иStringAgg
с аргументомfilter
при использовании вSubquery
(#31097). - Исправлена регрессия в Django 2.2.7, из-за которой
get_FOO_display()
работал некорректно при переопределении унаследованных вариантов (#31124). - Исправлена регрессия в Django 3.0, которая приводила к сбою
QuerySet.prefetch_related()
дляGenericForeignKey
с пользовательскимContentType
внешним ключом (#31190).