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

Примечания к выпуску 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(), чтобы ForeignKeys указывал на UUIDField и наследование в моделях с UUIDField первичными ключами работало правильно (#24698, #24712).

  • Исправлен поиск isnull для HStoreField (#24751).

  • Исправлен сбой MySQL, когда миграция удаляет комбинированный индекс (unique_together или index_together), содержащий внешний ключ (:ticket:24757).

  • Исправлено удаление файлов cookie сеанса при использовании SESSION_COOKIE_DOMAIN (#24799).

  • В PostgreSQL, когда доступ к базе данных postgres не предоставлен, Django теперь возвращается к базе данных по умолчанию, когда обычно требуется соединение «без базы данных» (#24791).

  • Исправлено отображение виджета ForeignKey contrib.admin``, когда он используется в строке с другими полями (#24784).

Back to Top