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

Ноябрь 24, 2015

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

Кроме того, шестая версия Django, django.utils.six, была обновлена до последней версии (1.10.0).

Исправлена возможность утечки настроек в фильтре шаблона date

Если приложение позволяет пользователям указывать непроверенный формат даты и передает этот формат фильтру date, например, {{ last_updated|date:user_date_format }}, то злоумышленник может получить любой секрет в настройках приложения, указав ключ настроек вместо формата даты. например, "SECRET_KEY" вместо "j/m/Y".

Чтобы исправить это, базовая функция, используемая фильтром шаблона date, django.utils.formats.get_format(), теперь позволяет получить доступ только к настройкам форматирования даты/времени.

Исправления

  • Исправлено падение отладочного представления во время осеннего изменения DST, когда USE_TZ установлен False и pytz.
  • Исправлена регрессия в версии 1.8.6, которая приводила к сбою маршрутизаторов баз данных без метода allow_migrate() (#25686).
  • Исправлена регрессия в 1.8.6, восстановлена возможность использования объектов Manager для аргумента queryset в ModelChoiceField (#25683).
  • Исправлена регрессия в версии 1.8.6, которая приводила к неудаче приложения с южными миграциями в каталоге migrations (#25618).
  • Исправлена возможность потери данных при Prefetch, если to_attr установлен на ManyToManyField (#25693).
  • Исправлена регрессия в 1.8, благодаря которой gettext() снова возвращает байтовые строки UTF-8 на Python 2, если входные данные являются байтовыми строками (#25720).
  • Исправлена сериализация DateRangeField и DateTimeRangeField (#24937).
  • Исправлен точный поиск ArrayField (#25666).
  • Исправлено обновление Model.refresh_from_db() полей ForeignKey с on_delete=models.SET_NULL (#25715).
  • Исправлена регрессия дублирующего запроса в 1.8 при проксированном удалении модели (#25685).
  • Исправлено падение set_FOO_order(), когда ForeignKey модели с order_with_respect_to ссылается на модель с OneToOneField первичным ключом (#25786).
  • Исправлена неправильная проверка для PositiveIntegerField и PositiveSmallIntegerField в MySQL, в результате чего значения больше 4294967295 или 65535, соответственно, проходили проверку и молча усекались базой данных (#25767).
Вернуться на верх