Примечания к выпуску 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(), теперь позволяет получить доступ только к настройкам форматирования даты/времени.
Исправления¶
Исправлен сбой в представлении отладки во время осеннего перехода на летнее время, когда
USE_TZимеет значениеFalseи установленpytz.Исправлена регрессия в версии 1.8.6, приводившая к сбою маршрутизаторов баз данных без методаallow_migrate() (#25686).
Исправлена регрессия в версии 1.8.6 путем восстановления возможности использования объектов
Managerдля аргументаquerysetModelChoiceField`` (#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).