Примечания к выпуску Django 1.8.1¶
1 мая 2015 г.
Django 1.8.1 исправляет несколько ошибок версии 1.8 и включает некоторые оптимизации в структуру миграции.
Исправления¶
Добавлена поддержка сериализации объектов
timedeltaпри миграции (#24566).Восстановлен правильный анализ позиционных аргументов команды
testserver(имен фикстур) (#24571).Предотвращена
TypeErrorв функциях переводаcheck_for_language()иget_language_bidi(), когда переводы деактивированы (#24569).Исправлена команда
squashmigrationsпри использованииSeparateDatabaseAndState(#24278).Убраны микросекунды из значений datetime при использовании более старой версии драйвера API MySQLdb DB, поскольку он не поддерживает дробные секунды (#24584).
Исправлен сбой миграции при изменении
ManyToManyFields (#24513).Исправлен сбой с
QuerySet.update()на внешних ключах для полей «один-к-одному» (#24578).Исправлена регрессия в подробном представлении модели
admindocs, когда модель имеет обратное отношение внешнего ключа (#24624).Предотвращено произвольное включение файлов в
admindocs(#24625).Исправлен сбой при использовании
QuerySet.update()на внешних ключах для экземпляров с первичными ключамиuuid(#24611).Исправлен самоанализ базы данных с помощью SQLite 3.8.9 (выпущен 8 апреля 2015 г.) (#24637).
Обновлены примеры
urlpatterns, сгенерированныеstartproject, чтобы исключить использование ссылок на представления по пунктирному пути вdjango.conf.urls.url(), который устарел в Django 1.8 (#24635).Исправлены запросы, в которых выражение упоминалось в order_by(), но не было частью предложения select. Пример запроса:
qs.annotate(foo=F('field')).values('pk').order_by('foo'))(#24615).Исправлена регрессия цитирования имени таблицы базы данных (#24605).
Предотвращена потеря свойств столбца
null/not nullво время изменения полей баз данных MySQL (#24595).Исправлен путь JavaScript к виджету связанного поля contrib.admin при использовании альтернативных хранилищ статических файлов (#24655).
Исправлен сбой миграции при добавлении новых отношений к моделям (#24573).
Исправлен сбой миграции при применении миграций с помощью менеджеров моделей на Python 3, которые были созданы на Python 2 (#24701).
Восстановлена возможность использовать итераторы в качестве аргументов фильтра набора запросов (#24719).
Исправлен сбой миграции при переименовании целевой модели отношения «многие ко многим» (#24725).
Удалена очистка тестовой базы данных с помощью
test --keepdb, что не позволяло приложениям с миграцией данных использовать опцию (#24729).Исправлен сбой makemessages в некоторых локалях (#23271).
Исправлено позиционирование текста справки для полей
contrib.admin, которые используют опцииModelAdmin.filter_horizontalиfilter_vertical(#24676).Исправлена ошибка AttributeError: функция GDALAllRegister не найдена при инициализации contrib.gis в Windows.
Оптимизации¶
Изменен
ModelStateдля глубокого копирования полей вместо деконструкции и реконструкции (#24591). Это ускоряет отрисовку состояний модели и снижает использование памяти при запускеmanage.pymigrate(хотя другие изменения в этом выпуске могут свести на нет любые преимущества в производительности).