Примечания к выпуску 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()
forGenericForeignKey
с настраиваемымContentType
внешним ключом ( # 31190 ).