Примечания к выпуску 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). - Исправлен сбой миграции при изменении
ManyToManyField
s (#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
(хотя другие изменения в этом выпуске могут свести на нет любые преимущества в производительности).