Примечания к выпуску 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).
- Исправлена ошибка миграции, которая не позволяла изменить nullable поле с значением по умолчанию на non-nullable с тем же значением по умолчанию (#23738).
- Исправлен сбой миграции при добавлении
GeometryFields сblank=Trueна PostGIS (#23731). - Разрешено использовать
DateTimeField()какTransform.output_field(#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__(), когдаnameфайла содержит символы Юникода (#23888). - Добавлен недостающий контекст в представление администратора
delete_selected, который предотвращал появление пользовательского заголовка сайта и т.д. (#23898). - Исправлена регрессия с динамически генерируемыми инлайнами и разрешенными ссылками на поля в админке (#23754).
- Исправлена ошибка бесконечного цикла для некоторых циклических зависимостей миграции, а сообщение об ошибке для циклических зависимостей стало более полезным.
- Добавлена недостающая обработка
index_togetherдля SQLite (#23880). - Исправлена ошибка, когда
RunSQLSQL содержимое собиралось редактором схемы, обычно при использованииsqlmigrate(#23909). - Исправлена регрессия в представлениях
contrib.adminadd/change, из-за которой некоторые методыModelAdminполучали неверное значениеobj(#23934). - Исправлено падение
runserver, когда сообщение об ошибке сокета содержало символы Юникода (#23946). - Исправлена сериализация
typeпри добавлении метода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).
- Всегда преобразовывали
related_nameв текст (Unicode), так как это требуется в Python 3 для интерполяции. Удалено преобразованиеrelated_nameв текст в деконструкции миграции (#23455 и #23982). - Увеличены размеры табличных пространств, создаваемых по умолчанию для тестирования на Oracle (основное табличное пространство увеличено с 200M до 300M, а временное - со 100M до 150M). Это было необходимо для того, чтобы учесть рост собственного набора тестов 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). - Исправлено падение admindocs на приложениях, установленных как яйца (#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). - Предотвращение лишних
DROP DEFAULTSQL в миграциях (#23581). - Восстановлена возможность использования более пяти уровней подзапросов (#23758).
- Исправлено падение, когда
ValidationErrorинициализируетсяValidationError, который инициализируется словарем (#24008). - Предотвращено падение приложений без миграций при запуске
migrate --list(#23366).