Примечания к выпуску Django 1.7.1¶
Октябрь 22, 2014
Django 1.7.1 исправляет несколько ошибок в версии 1.7.
Исправления¶
- Разрешено ссылаться на связанные поля «многие ко многим» в админке (#23604).
- Добавлено более полезное сообщение об ошибке при попытке миграции приложения без предварительного создания таблицы
contenttypes(#22411). - Изменен алгоритм зависимости миграций, чтобы избежать возможной бесконечной рекурсии.
- Исправлена ошибка
UnicodeDecodeError, когда сообщение об ошибкеflushсодержало символы Юникода (#22882). - Восстановлены отсутствующие
CHECKSQL-клаузулы, которые были пропущены в некоторых бэкендах, когда не использовались миграции (#23416). - Исправлена сериализация объектов
typeв миграциях (#22951). - Разрешены встроенные и скрытые ссылки на поля администратора (#23431).
- Декоратор
@deconstructibleтеперь выдает ошибкуValueError, если декорируемый объект не может быть автоматически импортирован (#23418). - Исправлена опечатка в сообщении об ошибке
inlineformset_factory(), которая приводила к сбою (#23451). - Восстановлена возможность использования
ABSOLUTE_URL_OVERRIDESс моделью'auth.User'(#11775). Как побочный эффект, настройка теперь добавляет методget_absolute_url()к любой модели, которая появляется вABSOLUTE_URL_OVERRIDES, но не определяетget_absolute_url(). - Предотвращение маскировки некоторых исключений
ImportErrorво время загрузки приложения (#22920). - Пустые опции модели
index_togetherилиunique_togetherбольше не приводят к бесконечным миграциям (#23452). - Исправлен сбой в
contrib.sitemaps, еслиlastmodвозвращалоdate, а неdatetime(#23403). - Позволяет миграциям работать с
app_label, которые имеют одинаковую последнюю часть (например,django.contrib.authиvendor.auth) (#23483). - Восстановлена возможность глубокого копирования объектов
F(#23492). - Добавлены форматы для валлийского (
cy) и нескольких китайских локалей (zh_CN,zh_Hans,zh_Hantиzh_TW). Исправлены форматы для македонского языка (удалена точка в конце, #23532). - Добавлено цитирование имен ограничений в SQL, генерируемом миграциями, для предотвращения сбоев при использовании заглавных символов в имени (#23065).
- Исправлено переименование моделей с самореферентным полем «многие ко многим» (
ManyToManyField('self')) (#23503). - Добавлены крючки
get_extra(),get_max_num()иget_min_num()кGenericInlineModelAdmin(#23539). - Для
migrations.RunSQLбольше не требуется экранирование знака процента. Теперь это соответствуетcursor.execute()(#23426). - Сделал запись
SERIALIZEв словареTESTпригодной для использования (#23421). - Исправлена ошибка в миграциях, которая предотвращала ограничения внешнего ключа для неуправляемых моделей с пользовательским первичным ключом (#23415).
- Добавлено
SchemaEditorдля бэкенда MySQL GIS, чтобы пространственные индексы создавались для приложений с миграциями (#23538). - Добавлено
SchemaEditorдля бэкенда Oracle GIS, чтобы пространственные метаданные и индексы были созданы для приложений с миграциями (#23537). - Принудительное приведение опции поля модели
related_nameк Unicode во время генерации миграций для создания миграций, работающих как с Python 2, так и с 3 (#23455). - Исправлено
MigrationWriterдля обработки встроенных типов без импорта (#23560). - Исправлено
deepcopyнаErrorList(#23594). - Заставило представление
admindocsдля просмотра подробностей представления проверять, существует ли представление, указанное в URL, в URLconf. Ранее можно было импортировать произвольные пакеты из пути Python. Это не считалось проблемой безопасности, посколькуadmindocsдоступен только штатным пользователям (#23601). - Исправлено падение
UnicodeDecodeErrorвAdminEmailHandlerпри наличии в запросе символов, отличных от символов ASCII (#23593). - Исправлены отсутствующие
get_or_createиupdate_or_createна связанных менеджерах, вызывающиеIntegrityError(#23611). - Заставил
urlsafe_base64_decode()возвращать правильный тип (bytestring) на Python 3 (#23333). makemigrationsтеперь может сериализовать значения с учетом временной зоны (#23365).- Добавлена подсказка в вопросник миграций при снятии ограничения null с поля для предотвращения IntegrityError на существующих NULL-строках (#23609).
- Исправлены родовые отношения в
ModelAdmin.list_filter(#23616). - Восстановлено соответствие RFC для бэкенда SMTP на Python 3 (#23063).
- Исправлен сбой при разборе файлов cookie с недопустимым содержимым (#23638).
- Система проверки системы теперь вызывает ошибку models.E020, когда метод класса
Model.check()недостижим (#23615). - Сделано создание тестовой базы данных Oracle сбрасывающим тестового пользователя в случае нечистого выхода из предыдущего тестового запуска (#23649).
- Исправлено
makemigrationsдля обнаружения изменений вMeta.db_table(#23629). - Исправлена регрессия при передаче тестовому клиенту Django пустой строки данных (#21740).
- Исправлена регрессия в
makemessages, когда статические файлы неожиданно игнорировались (#23583).