Примечания к выпуску 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).