Примечания к выпуску 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+ при
GeometryField
s в миграциях (#23719). - Исправлен сбой миграции при удалении поля, на которое есть ссылка в
AlterIndexTogether
илиAlterUniqueTogether
(#23614). - Обновлен первый день недели в украинской локали на понедельник.
- Добавлена поддержка транзакционной инициализации пространственных метаданных на SpatiaLite 4.1+ (#23152).
- Исправлена ошибка миграции, которая не позволяла изменить nullable поле с значением по умолчанию на non-nullable с тем же значением по умолчанию (#23738).
- Исправлен сбой миграции при добавлении
GeometryField
s с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). - Исправлена ошибка, когда
RunSQL
SQL содержимое собиралось редактором схемы, обычно при использованииsqlmigrate
(#23909). - Исправлена регрессия в представлениях
contrib.admin
add/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). - Сделана проверка системы администрирования для пользовательских
AdminSite
s (#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 DEFAULT
SQL в миграциях (#23581). - Восстановлена возможность использования более пяти уровней подзапросов (#23758).
- Исправлено падение, когда
ValidationError
инициализируетсяValidationError
, который инициализируется словарем (#24008). - Предотвращено падение приложений без миграций при запуске
migrate --list
(#23366).