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

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

1 сентября 2020 г.

В Django 3.1.1 исправлены две проблемы безопасности и несколько ошибок версии 3.1.

CVE-2020-24583: неправильные разрешения для каталогов промежуточного уровня в Python 3.7+.

В Python 3.7+ режим FILE_UPLOAD_DIRECTORY_PERMISSIONS не применялся к каталогам промежуточного уровня, созданным в процессе загрузки файлов, и к собранным статическим каталогам промежуточного уровня при использовании команды управления collectstatic.

Вам следует просмотреть и вручную исправить разрешения для существующих каталогов промежуточного уровня.

CVE-2020-24584: Повышение разрешений в каталогах промежуточного уровня кэша файловой системы на Python 3.7+.

В Python 3.7+ каталоги промежуточного уровня кэша файловой системы имели стандартную umask системы, а не 0o077 (без групповых или других разрешений).

Исправления

  • Исправлен перенос переведенных меток действий на боковой панели администратора для восточноазиатских языков (#31853).

  • Исправлен перенос длинных названий моделей на боковой панели администратора (#31854).

  • Исправлено кодирование данных сеанса при обновлении нескольких экземпляров одного и того же проекта до Django 3.1 (#31864).

  • Скорректирован шаблон боковой панели навигации администратора, чтобы уменьшить количество журналов отладки при рендеринге (#31865).

  • Исправлена ​​возможность потери данных в select_for_update(). При использовании связанных полей, указывающих на прокси-модель в аргументе of, соответствующая модель не блокировалась (#31866).

  • Исправлена ​​возможность потери данных после регрессии в Django 2.0 при копировании экземпляров модели со значением кэшированных полей (#31863).

  • Исправлена ​​регрессия в Django 3.1, приводившая к сбою при декодировании недопустимых данных сеанса (#31895).

  • Отменено прекращение поддержки в Django 3.1, которое приводило к сбою при передаче устаревших аргументов ключевого слова в набор запросов в TemplateView.get_context_data() (#31877).

  • Принудительная чувствительность потоков для перехватчиков MiddlewareMixin.process_request() и process_response() в асинхронном контексте (#31905).

  • Исправлен поиск __in по ключевым преобразованиям для JSONField с MariaDB, MySQL, Oracle и SQLite (#31936).

  • Исправлена ​​регрессия в Django 3.1, которая вызывала ошибки разрешений в CommonPasswordValidator и settings.py, созданные командой startproject, когда у пользователя не было разрешений для всех промежуточных каталогов в пути установки Django (#31912).

  • Исправлено обнаружение асинхронного вызова get_response в различных встроенных промежуточных программах (#31928).

  • Fixed a QuerySet.order_by() crash on PostgreSQL when ordering and grouping by JSONField with a custom decoder (#31956). As a consequence, fetching a JSONField with raw SQL now returns a string instead of pre-loaded data. You will need to explicitly call json.loads() in such cases.

  • Исправлен сбой QuerySet.delete() в MySQL после снижения производительности в Django 3.1 на MariaDB 10.3.2+ при фильтрации по агрегатной функции (#31965).

  • Исправлен сбой django.contrib.admin.EmptyFieldListFilter при использовании обратных отношений (#31952).

  • Предотвращено переполнение контента в представлении списка изменений администратора, когда включена боковая панель навигации (#31901).

Back to Top