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

Copyright ©2021 All rights reserved