18 марта 2011 г.

Примечания к готовящемуся выпуску Django 1.3

Django 1.3 ещё не вышел пока, но должен скоро!

Прошло уже 2 недели с момента выпуска релиз-кандидата новой версии веб-фреймворка Django 1.3 (и 3 месяца с первой альфы). Мы с нетрпением ждём постоянно откладываемого релиза :) и решили подготовить полный список фич и изменений, чтобы освежить память, что же «вкусного» в новой Джанге.

Что нового

  • Появились виды, основанные на классах.
    Это новшество добавляет широкие возможности композиции видов путём наследования классов. Для встроенных видов прежняя форма считается устаревшей.
  • Добавилась поддержка питоновского модуля logging с возможностью настройки.
  • Улучшена обработка статики.
    В Джангу включили приложение ранее известное как django-staticfiles. Это помогает в связывании файлов статики с приложением, то есть теперь статика может включаться в приложение, а специальная команда manage.py collectstatic собирает их вместе.
  • Поддержка unittest2 в качестве основной библиотеки для тестов.
  • Транзакции теперь можно оформлять в виде менеджера контекста
  • Настройка каскадного удаления в моделях.
  • Маркеры контекста и комментарии для строк перевода.
  • Встроеные теги include, with и load получили дополнительные аргументы.
  • Класс TemplateResponse как динамичная замена статичному HttpResponse.
  • Новые фичи кеширования.
  • Права для неактивированных пользователей.
  • Набор тестов GeoDjango для пространственных БД (spatial dabases).
  • MEDIA_URL и STATIC_URL должны заканчиваться слешем.
  • и ещё по мелочи

Обратно не совместимые изменения в 1.3

  • Проверка на CSRF теперь и для аякс-запросов.
    Ранее аякс-запросы не проверялись на CSRF-токен, теперь это не так, необходимо для аяксовых запросов включать в заголовок X-CSRFTOKEN, либо использовать декоратор @csrf_exempt
  • Запрос к фильтрам в админском интерфейсе проверяет права на доступ к моделям.
  • Поле FileField больше не удаляет файлы при удалении записи из БД.
  • Поле PasswordInput по умолчанию очищает поле пароля при отрисовке формы.
  • Виджет ClearableFileInput для очистки input type=file.
  • Индекс по полю expire_date в таблице сессий.
  • Убраны фильтры брани в комментариях PROFANITIES_LIST.
  • FormSet больше не принимает пустой словарь в качестве аргумента.
  • При передаче в шаблон вызываемого объекта он будет вызываться автоматически (как раньше происходило для вызываемых атрибутов).
  • SQL инсерты, написанные вручную и выполняемы при синхронизации данных при тестировании больше не выполняются.
  • Изменен приоритет загрузки переводов.
  • Управление транзакциями.
  • Неактивированные пользователи теперь не могут сбросить себе пароль

Устаревшие фичи («deprecated» в 1.3)

  • Поддержка mod_python будет полностью убрана в 1.5 (не релизился с 2007 года)
  • Общие виды на основе функций заменили видами, основанные на классах
  • Устарел аргумент template у django.test.client.Client
  • DjangoTestRunner заменили на untitest2
  • Изменение тегов url и ssi. Ранее они не поддерживали передачу аргумента через переменую контекста.
  • Авторизация админов теперь не отличается от авторизации юзеров ( убран недокументированный django.contrib.admin.sites.AdminSite.display_login_form)
  • Устарели команды reset and sqlreset. Используйте flush и sqlflush или ручное удаление.
  • В GeoDjango не рекомендуют к использованию TEST_RUNNER, изменилось поведение метода transform()
  • Устарел метод CZBirthNumberField.clean
  • Устарел класс CompatCookie
  • Отказ от загрузки переводов из project path
  • Обработчик контекста PermWrapper переехал в django.contrib.auth.context_processors
  • Поле XMLField будет убрано полностью уже в 1.4

Кому не терпится воспользоваться всем новым функционалом, могут загрузить последний RC с сайта Джанги или воспользоваться командой

easy_install django http://media.djangoproject.com/releases/1.3/Django-1.3-rc-1.tar.gz
Либо чекаут транка из SVN:
svn co http://code.djangoproject.com/svn/django/trunk/

3 комментария:

  1. <<Неактивированные пользователи не могут сбросить себе пароль не понятно, было ли это, или стало

    Что не могут - стало. В 1.2 могут

    ОтветитьУдалить
  2. На айфоне текст налезает на сайдбар, сорри за оффтоп

    ОтветитьУдалить
  3. [...] http://www.futurecolors.ru/blog/2011/03/django-1-3-release-notes/ [...]

    ОтветитьУдалить