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

20 мая 2015 года

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

Исправлен сброс сеанса в cached_db бэкэнде

Изменение session.flush() в cached_db бэкэнде сеанса в Django 1.8 по ошибке устанавливает для ключа сеанса пустую строку, а не None . Пустая строка рассматривается как действительный сеансовый ключ, и соответственно устанавливается файл cookie сеанса. Любые пользователи с пустой строкой в ​​cookie сеанса будут использовать одно и то же хранилище сеансов. session.flush() вызывается django.contrib.auth.logout() и, что более серьезно, django.contrib.auth.login() когда пользователь переключает учетную запись. Если пользователь вошел в систему и снова входит в систему с другой учетной записью (без выхода из системы), сеанс очищается, чтобы избежать повторного использования. После сброса сеанса (и его ключа сеанса становится '' ) данные учетной записи устанавливаются в сеансе, и сеанс сохраняется. Все пользователи с пустой строкой в ​​cookie сеанса теперь будут входить в эту учетную запись.

Исправления

  • Исправлена ​​проверка уникальности псевдонима шаблонизатора ( # 24685 ).
  • Исправлен сбой при повторном использовании одного и того же Case экземпляра в запросе ( # 24752 ).
  • Исправлено продвижение присоединения к Case выражениям. Например, аннотирование запроса Case выражением может неожиданно отфильтровать результаты ( # 24766 ).
  • Исправлены отрицательные Q объекты в выражениях. В таких случаях, как Case(When(~Q(friends__age__lte=30))) попытка создания подзапроса, приводящая к сбою ( # 24705 ).
  • Исправлена ​​некорректная генерация предложения GROUP BY в MySQL, когда модель запроса имеет самореферентный внешний ключ ( # 24748 ).
  • Реализовано ForeignKey.get_db_prep_value() так, чтобы ForeignKey s указание UUIDField и наследование на моделях с UUIDField первичными ключами работали правильно ( # 24698 , # 24712 ).
  • Исправлен isnull поиск для HStoreField ( # 24751 ).
  • Исправлен сбой MySQL, когда миграция удаляла комбинированный индекс (unique_toght или index_toght), содержащий внешний ключ ( # 24757 ).
  • Исправлено удаление сессионных куки при использовании SESSION_COOKIE_DOMAIN ( # 24799 ).
  • В PostgreSQL, когда доступ к postgres базе данных не предоставляется, Django теперь возвращается к базе данных по умолчанию, когда обычно требуется соединение «без базы данных» ( # 24791 ).
  • Исправлено отображение contrib.admin «S ForeignKey виджета , когда он используется в ряд с другими полями ( # 24784 ).

Copyright ©2020 All rights reserved