С опозданием на несколько недель вышел новый мажорный релиз фреймворка для разработки веб-приложений на языке Python − Django 1.4. Список изменений весьма обширен, наиболее интересные из них:
- Продвинутая поддержка часовых поясов (timezone).
- Поддержка браузерных фреймворков для тестирования (например, Selenium).
- Шаблоны для создания новых проектов.
- Улучшена поддержка WSGI.
- Поддержка SELECT FOR UPDATE в ORM, которая позволяет заблокировать доступ на чтение и удаление к записям, соответствующим запросу.
- Теперь можно хранить данные пользовательской сессии в cookie.
- Добавлен метод Model.objects.bulk_create для эффективной вставки множества записей в БД.
- Добавлен метод QuerySet.prefetch_related, схожий с известным методом select_related, но который более эффективно работает в некоторых сложных ситуациях (например, для отношений многое-ко-многим, или при использовании GenericForeignKey).
- Улучшено хеширование паролей. Теперь используется алгоритм PBKDF2.
- Страницы встроенной админки теперь имеют HTML5 Doctype.
- Улучшения админки: улучшены фильтры, добавлена возможность множественной сортировки.
- FormWizard переписан с использованием class-based views.
- Добавлен метод reverse_lazy, позволяющий использовать обратный резолвинг URL (django.core.urlresolvers.reverse) до загрузки URLConf.
- Улучшена поддержка интернационализации URL.
- Улучшен вывод отладочной информации при ошибках в шаблонах.
- Добавлена защита от Clickjacking (выключена по умолчанию для обратной совместимости).
- Улучшена защита от CSRF.
Надо заметить, что в релизе 1.4 убрана поддержка Python 2.4, а в релизе 1.5 будет добавлена экспериментальная поддержка Python 3, о чем можно почитать здесь.
Список функций, не рекомендуемых для использования (deprecated)