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