Примечания к выпуску 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 ©2020 All rights reserved