solovyov.net

Фичи Django 1.0

· · django

Джеймс Беннет пару дней назад опубликовал список фич, которые важны для релиза Django 1.0, по причине того, что они очень большие и важные, либо того что они простые, маленькие и порядочно улучшают/облегчают использование в обычных случаях, либо (менее важно) они заметно нарушают обратную совместимость и было бы неплохо их интегрировать заранее.

Четвёрка главарей, первый из которых уже успешно убит:

  • Queryset-refactoring
  • Newforms-admin
  • Валидация данных на уровне моделей
  • Перевод всего, что использует oldforms, на использование newforms

При этом он заметил, что последние три реально очень близки к завершению, а первый, как мы знаем, вчера был замержен в транк.

И сопутствующая им банда:

  • Переработка бекенда для сохранения файлов, которая вообще облегчит работу с файлами и позволит легко добавлять новые хранилища, в т.ч. и сетевые. Патч существует и готов к применению
  • Рефакторинг диспетчера сигналов, который нереально полезен, но порядочно притормаживает. Как минимум Джекоб Каплан-Мосс над этим работает
  • Починка интерфейса WSGI, которая наконец-то позволит без напрягов сажать Джангу не только в корень проекта без изменений в урлах1
  • Переработка механизма загрузки тегов (который {{ "{%" }} load something {{ "%}" }}) - он довольно магический для того, чтоб при возникновении ошибки рапорт о ней был совершенно непонятен :-)
  • Улучшение обратного резолвинга адресов.2 Натыкался уже неоднократно и был бы счастлив, если бы хотя бы существующие патчи применили
  • Улучшение резолвинга переменных в тегах, чтоб фильтры автоматически применялись3

Парочка обратно несовместимых изменений, которые не столько большие, сколько несовместимые :-)

  • Часто упоминаемая переделка INSTALLED_APPS, чтоб одно приложение можно было использовать несколько раз, плюс чтобы магичность app_label пропала
  • Механизм указывания и упорядочивания миддлварей, потому что похоже с ним встречаются довольно неприятные ситуации4

Есть ещё три изменения, которые часто просят и многие будут удивлены, если они будут отсутствовать в Django 1.0:

  • Рефакторинг django.contrib.comments
  • Рефакторинг документации
  • Поддержка агрегации в ORM

Во-первых, из этих трёх только комментарии обратно несоместимы, причём это всего лишь контриб, т.е. несложно сохранить и старую версию. При этом они, как и агрегация, являются проектом GSoC5. Ну а последние два никаких проблем для существующих приложений не приносят и потому их можно закинуть в основное дерево просто в любой момент.

Так что делать ещё есть что, но в то же время большая часть изменений почти готова, потому 1.0 уже выглядывает из-за горизонта. Особенно после мержа qsrf. :-)))


  1. А это вторая. Да-да, newforms-admin беспокоит намного меньше. :D
  2. Хм, а сейчас не применяются? Странно, но не стыкался.
  3. Не уверен, какие. Он говорит о том, что бывают ситуации, в которых нету правильного порядка, но я не стыкался и пока не представляю, как это.
  4. Google Summer of Code