среда, 6 января 2010 г.

Релиз Django 1.2 Alpha

Сегодня случилось приятное событие и зарелизилась джанга 1.2 альфа.

Самые интересные нововведения:

1) Email-бэкенды
Появилась возможность указать бэкенд для отправления емэйлов, в стандартной поставке есть smtp/file/dummy/locmem/console бэкенды, и можно написать свой. Тестировать приложения намного приятнее.

2) -User Messages API +Messages Framework
User Messages API, тот который (user.message_set.create()) был выпилен, и ему на смену пришел фрэймворк messages из контриба.

3) Поддержка множественных баз данных (ура)
Теперь БД определяются следующим образом

DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'users': {
'NAME': 'user_data'
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'priv4te'
}
}

И соответственно при работе с ORM можно указать, какую из БД использовать.
Например так:


>>> Author.objects.using('default').all()
# This will run on the 'other' database
>>> Author.objects.using('other').all()
# Specify database on save
>>> user_obj.save(using='legacy_users')


До версии 1.4 старый способ объявления настроек БД выпилен не будет, и будут работать оба.

4) Еще одно очень приятное нововведение - умный if тэг в шаблонах.

Да, можно выкидывать smart_if.py, потому что теперь все его возможности идут из коробки.

5) django.template.loaders.cached.Loader

Лоадер для шаблонов, который кэширует результат загрузки с диска и компиляции шаблона.
По-умолчанию выключен.

6) Кастомная валидация моделей (и моделеформ на их базе)

Правда в Release Notes про нее не написано, но в транке она уже есть.

Все остальное не так ожидаемо (по моему личному мнению) и ознакомиться с этим можно по ссылке:
Release notes (django 1.2 alpha) Читать дальше.