• 3.1
  • 3.2
  • 5.0
  • Версия документации: 6.1

Примечания к выпуску Django 3.2.1

4 мая 2021 г.

Django 3.2.1 исправляет проблему безопасности и несколько ошибок в версии 3.2.

CVE-2021-31542: потенциальный обход каталогов через загруженные файлы.

MultiPartParser, UploadedFile и FieldFile допускали обход каталога через загруженные файлы с соответствующим образом созданными именами файлов.

Чтобы снизить этот риск, теперь применяется более строгая очистка базового имени и пути.

Исправления

  • Исправлено обнаружение GDAL 3.2 в Windows (#32544).

  • Исправлена ​​ошибка в Django 3.2, из-за которой подклассы BigAutoField и SmallAutoField не допускались для настройки DEFAULT_AUTO_FIELD (#32620).

  • Исправлена ​​регрессия в Django 3.2, приводившая к сбою QuerySet.values()/values_list() после QuerySet.union(), intersection() и difference(), когда он был упорядочен по неаннотированному полю (#32627).

  • Восстановлено после регрессии в Django 3.2, отображающее сообщение об исключении на технической странице отладки 404 (#32637).

  • Исправлена ​​ошибка в Django 3.2, из-за которой проверка системы завершалась сбоем при обратных отношениях один-к-одному в CheckConstraint.check или UniqueConstraint.condition (#32635).

  • Исправлена ​​регрессия в Django 3.2, приводившая к сбою ModelAdmin.search_fields при поиске по фразам с несбалансированными кавычками (#32649).

  • Исправлена ​​ошибка в Django 3.2, из-за которой регистрировались ошибки поиска переменных при рендеринге шаблона карты сайта, если альтернативы не были определены (#32648).

  • Исправлена ​​регрессия в Django 3.2, приводившая к сбою при объединении объектов Q(), содержащих логические выражения (#32548).

  • Исправлена ​​регрессия в Django 3.2, приводившая к сбою QuerySet.update() в наборе запросов, упорядоченном по унаследованным или объединенным полям в MySQL и MariaDB (#32645).

  • Исправлена ​​регрессия в Django 3.2, приводившая к сбою при декодировании значения cookie, используемого django.contrib.messages.storage.cookie.CookieStorage в формате, предшествующем Django 3.2 (#32643).

  • Исправлена ​​регрессия в Django 3.2, из-за которой модификатор клавиши Shift не мог выбрать несколько строк в списке изменений администратора (#32647).

  • Исправлена ​​ошибка в Django 3.2, из-за которой проверка системы завершалась сбоем при настройке STATICFILES_DIRS со списком из двух кортежей (prefix, path) (#32665).

  • Исправлена ​​давняя ошибка, связанная с побитовой комбинацией набора запросов при использовании с подзапросами, которые начали проявляться в Django 3.2, из-за отдельного исправления, использующего многозначные отношения Exists для exclude() (#32650).

  • Исправлена ​​ошибка в Django 3.2, из-за которой регистрировались ошибки поиска переменных при рендеринге некоторых шаблонов администратора (#32681).

  • Исправлена ​​ошибка в Django 3.2, из-за которой список изменений администратора аварийно завершал работу при удалении объектов, отфильтрованных по многозначным отношениям (#32682). Список изменений администратора теперь использует Exists() вместо QuerySet.distinct(), поскольку вызов delete() после distinct() не разрешен в Django 3.2 из-за возможности потери данных.

  • Исправлена ​​регрессия в Django 3.2, из-за которой среда вызывающего процесса не передавалась команде dbshell в PostgreSQL (#32687).

  • Исправлено снижение производительности в Django 3.2 при построении сложных фильтров с подзапросами (#32632). В качестве побочного эффекта удален частный API для проверки равенства django.db.sql.query.Query.

Back to Top