Примечания к выпуску 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при использовании старой версии драйвера MySQLdb DB API, поскольку он не поддерживает дробные секунды (#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).
- Восстановлена возможность использования итераторов в качестве аргументов фильтра queryset (#24719).
- Исправлена ошибка миграции при переименовании целевой модели отношения «многие-ко-многим» (#24725).
- Удалена промывка тестовой базы данных с помощью
test --keepdb, что не позволяло приложениям с миграцией данных использовать эту опцию (#24729). - Исправлена ошибка
makemessagesв некоторых локалях (#23271). - Исправлено позиционирование текста справки для полей
contrib.admin, использующих опцииModelAdmin.filter_horizontalиfilter_vertical(#24676). - Исправлена ошибка
AttributeError: function 'GDALAllRegister' not foundпри инициализацииcontrib.gisв Windows.
Оптимизации¶
- Изменено
ModelStateдля глубокого копирования полей вместо деконструкции и реконструкции (#24591). Это ускоряет рендеринг состояний модели и уменьшает использование памяти при выполненииmanage.py migrate(хотя другие изменения в этом выпуске могут свести на нет все преимущества производительности).