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