Примечания к выпуску 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).