Как стать автором
Обновить

Вышел django 1.2 beta 1

Время на прочтение3 мин
Количество просмотров535
Вышла новая 1.2 бета версия вебфреймворка Djnago

Что изменилось со времен 1.1.1?

Изменения в защите от подделки междоменных запросов Изменения связаны в первую очередь с упрощением и некоторым рефакторингом в мидлетах. Что более важно защита будет включена по умолчанию и возможно ваши POST вьюшки потребуют доработки. Тут подробнее

Изменили LazyObject. Для более корректной интроспекции его привели к более общему виду вместо get_all_members() теперь будет использоваться __dir__() и __members__ (штука плохо документирована и будет очень хорошо, если кто-то расскажет детали)



В словарь модели (__dict__) для поддержки нескольких баз данных помимо полей добавилось _state. Это стоит учитывать, если вы используете и фильтровать, если вы используется __dict__ для получения полей моделей.

Для поддержки нескольких баз были изменены модели полей. В сигнатуры методов get_db_prep_*() добавлена информация о текущем соединении. Эти методы предназначены для конвертации типов питона и базы данных. Если же у вашему полю не важна база то для этих целей ввели 2 новых метода get_prep_value, get_prep_lookup и скорее всего хватит простого переименования.

Значительно был ускорен кеш шаблонов. Что особенно заметно при использовании многих мелких подшаблонов. Но если вы используете не стандартные шаблонные теги, то важно быть уверенным что что ваши теги потокобезопасны

В шаблонах «and», «not», «or» теперь зарезервированные ключевые слова, и если вы раньше по каким-то причинам использовали их как переменные то придется править ваш код. «If» так же был переработан к более привычному виду.
{% if a != b %}
...
{% endif %}

или даже
<div
{% if user.email|lower == message.recipient|lower %}
class="highlight"
{% endif %}
>{{ message }} [/div]


Тест раннер при любом количестве проваленных тестов возвращает код выхода (exit code) 1. Это связанно с тем что по стандарту максимальный код выхода 255, а количество проваленных тестов может быть и больше. Кроме того теперь раннеры должны наследоваться от классов. Старые функциональные отмечены как устаревшие.

В раннер тестов добавлена опция --failfast, тесты выполняются до первого провального.

В значении кук(cookie) символы ',', ';' теперь считаются небезопасными и кодируются как \054 и \073 соответственно. Причина – не корректная работа с кукаким в бразуерах ie и safari

SMTPConnection — помечен устаревшим в пользу универсального интерфейса доступа к почте:
Вместо
from django.core.mail import SMTPConnection
connection = SMTPConnection()

Рекомендуется использовать:
from django.core.mail import get_connection
connection = get_connection()


Это позволяет поддерживать нескольких бекендов (backend) для отправки почты. К примеру теперь можно реализовать отправку почты в память, в фаил, или сразу в /dev/null

Старый способ настройки базы был признан устаревшим
После введения поддержки нескольких баз одновременно старый способ настройки базы был признан устаревшим. Теперь вместо DATABASE_ENGINE, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD
надо использовать словарь:
DATABASES = {
'default': {
'NAME': 'test_db',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'myusername',
'PASSWORD': 's3krit',
}
}

До версии 1.4 старый будут доступны оба способа

django.contrib.syndication.feeds.Feed отмечен как устаревший. Надо использовать django.contrib.syndication.views.Feed интерфейс то же самый но можно использовать как вьюшку.

Добавлены права доступа на уровне объекта. Django не использует эту возможность, но ваши бекенды могут детали тут. (Сам не пробовал. Если кто то расскажет зачем оно и как должно работать буду очень рад)

Добавлен раздельный механизм прав доступа для авторизированных и анонимных пользователей.

Напоминаю о графике релизов:
March 2, 2010 Django 1.2 rc1. Заморозка локализаций
March 9, 2010 Django 1.2 final release.
Теги:
Хабы:
+9
Комментарии6

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн