Примечания к выпуску Django 1.7.2¶
2 января 2015 г.
В Django 1.7.2 исправлено несколько ошибок версии 1.7.1.
Кроме того, шестая версия Django, django.utils.six, была обновлена до последней версии (1.9.0).
Исправления¶
Исправлено переименование при миграции автоматически созданных таблиц «многие ко многим» при изменении
Meta.db_table(#23630).Исправлен сбой миграции при добавлении явного поля
idв модель на SQLite (#23702).Добавлено предупреждение о дублирующихся моделях при перезагрузке модуля. Ранее ошибка RuntimeError возникала каждый раз, когда две модели конфликтовали в реестре приложения. (:билет:`23621`).
Запрещено
flushзагружать исходные данные для перенесенных приложений (#23699).Исправлена регрессия
makemessagesв версии 1.7.1, когдаSTATIC_ROOTимеет значение по умолчаниюNone(#23717).Добавлена совместимость GeoDjango с драйвером базы данных mysqlclient.
Исправлен сбой MySQL 5.6+ с
GeometryFields при миграции (#23719).Исправлен сбой миграции при удалении поля, на которое есть ссылка в
AlterIndexTogetherилиAlterUniqueTogether(#23614).Обновлен первый день недели в украинском языке на понедельник.
Добавлена поддержка инициализации транзакционных пространственных метаданных в SpatiaLite 4.1+ (#23152).
Исправлен сбой при миграции, который не позволял изменить поле, допускающее значение NULL, со значением по умолчанию на поле, допускающее значение NULL, с тем же значением по умолчанию (#23738).
Исправлен сбой миграции при добавлении
GeometryFields сblank=Trueв PostGIS (#23731).Разрешено использование DateTimeField() как Transform.output_field (:ticket:23420).
Исправлена ошибка сериализации миграции, связанная с
float("nan")иfloat("inf")(#23770).Исправлена регрессионная ошибка, из-за которой пользовательские поля формы, имеющие атрибут queryset, но без атрибута limit_choices_to, нельзя было использовать в
ModelForm(#23795).Исправлена ошибка проверки типа пользовательского поля в бэкэнде MySQL, когда
db_typeвозвращалNone(#23761).Исправлен сбой при миграции при переименовании поля, которое является частью index_together (#23859).
Исправлен
squashmigrationsдля соблюдения параметра--no-optimize(#23799).Сделано
RenameModelобратимым (#22248)Устранены ненужные откаты миграции из других приложений при обратной миграции (#23410).
Исправлена редкая ошибка запроса при использовании глубоко вложенных подзапросов (#23605).
Исправлен сбой при миграции при удалении поля, которое является частью ограничения index/unique_together (#23794).
Исправлен
django.core.files.File.__repr__(), когдаимяфайла содержит символы Юникода (#23888).В представление администратора
delete_selectedдобавлен отсутствующий контекст, который не позволял отображать пользовательский заголовок сайта и т. д. (#23898).Исправлена регрессия с динамически генерируемыми встроенными строками и разрешенными ссылками на поля в администраторе (#23754).
Исправлена ошибка бесконечного цикла для некоторых зависимостей циклической миграции, а сообщение об ошибке для циклических зависимостей стало гораздо более полезным.
Добавлена недостающая обработка index_together для SQLite (#23880).
Исправлен сбой, когда содержимое SQL RunSQL собиралось редактором схемы, обычно при использовании SQLmigrate (#23909).
Исправлена регрессия в представлениях добавления/изменения
contrib.admin, из-за которой некоторые методыModelAdminполучали неправильное значениеobj(#23934).Исправлен сбой
runserver, когда сообщение об ошибке сокета содержало символы Юникода (#23946).Исправлена сериализация типа при добавлении метода deconstruct() (#23950).
Запрещено django.contrib.auth.middleware.SessionAuthenticationMiddleware устанавливать заголовок Vary: Cookie во всех ответах (#23939).
Исправлен сбой при добавлении
blank=TrueвTextField()в MySQL (#23920).Исправлено создание индексов инфраструктурой миграции, особенно при работе со специфичными для PostgreSQL индексами
{text|varchar}_pattern_ops(#23954).Исправлена ошибка в makemigrations, из-за которой создавались неработающие файлы миграции при работе с множественным наследованием таблиц и наследованием от более чем одной модели (#23956).
Исправлен сбой, когда MultiValueField содержит неверные данные (#23674).
Исправлен сбой в панели администратора при использовании «Сохранить как новый», а также при удалении соответствующей встроенной строки (#23857).
Всегда преобразует
связанное_имяв текст (Юникод), поскольку это требуется в Python 3 для интерполяции. Удалено преобразование `` linked_name`` в текст при деконструкции миграции (#23455 и #23982).Увеличены размеры табличных пространств, создаваемых по умолчанию для тестирования на Oracle (основное табличное пространство увеличено с 200 МБ до 300 МБ, а временное табличное пространство — со 100 МБ до 150 МБ). Это было необходимо для обеспечения роста собственного набора тестов Django (#23969).
Исправлены переводы фильтра «timesince» на корейский язык (#23989).
Исправлен SQLite
SchemaEditorдля правильного добавления значений по умолчанию при отсутствии указанного пользователемdefault. Например, CharField с Blank=True не присваивал существующим строкам пустую строку, что приводило к сбою при добавлении ограничения NOT NULL (#23987).makemigrationsбольше не запрашивает значение по умолчанию при добавленииTextField()илиCharField()безdefault(#23405).Исправлен сбой миграции при добавлении order_with_respect_to в таблицу с существующими строками (#23983).
Восстановлен сигнал pre_migrate, если все приложения имеют миграцию (#23975).
Сделаны проверки системы администратора для пользовательских
AdminSites (#23497).Реестр приложений был полностью заполнен при разборе моделей. Когда внешний скрипт (например, инфраструктура очередей) перезагружает маринованные модели, он может аварийно завершить работу с исключением AppRegistryNotReady (#24007).
Добавлены кавычки для индексов полей в SQL, созданных при миграции, чтобы предотвратить сбой, когда этого требует имя индекса (#24015).
Добавлена поддержка datetime.time в вопросник по миграции (#23998).
Исправлен сбой административной документации в приложениях, установленных в виде яиц (#23525).
Изменен автодетектор миграций, теперь он генерирует операцию AlterModelOptions вместо операций DeleteModel и CreateModel при изменении Meta.managed. Это предотвращает потерю данных при изменении
managedсFalseнаTrueи наоборот (#24037).Включена команда
sqlsequenceresetдля приложений с миграцией (#24054).Добавлен SQL табличного пространства в приложения с миграциями (#24051).
Исправлено создание сайта по умолчанию contrib.sites при настройке нескольких баз данных (#24000).
Восстановлена поддержка объектов, которые не являются
strилиbytesвdjango.utils.safestring.mark_for_escaping()на Python 3.Поддерживаемые строки, экранированные сторонними библиотеками с помощью соглашения
__html__в механизме шаблонов (#23831).Предотвращен посторонний SQL-код
DROP DEFAULTпри миграции (#23581).Восстановлена возможность использования более пяти уровней подзапросов (#23758).
Исправлен сбой, когда ValidationError инициализируется с помощью ValidationError, который инициализируется со словарем (#24008).
Предотвращен сбой в приложениях без миграции при запуске
migrate --list(#23366).