Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Вышел django 1.2 beta 1

Чулан
Вышла новая 1.2 бета версия вебфреймворка Djnago

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

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

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

Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры 291
Комментарии 6

Всем по сообщению

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

Идущее в поставке с Django приложение аутентификации и авторизации (django.contrib.auth) всегда включало базовый функционал для отображения всплывающих сообщений пользователю, но он имел несколько досадных недостатков. В Django 1.2 же теперь есть совершенно новый фреймворк для таких сообщений, написанный в первую очередь Тобаясом Макналти (Tobias McNulty).

Читать дальше →
Всего голосов 66: ↑60 и ↓6 +54
Просмотры 12K
Комментарии 12

Если поумнеет

Django *
Перевод
Ох этот скромный {% if %}. Краеугольный камень шаблоной логики Django.

Каждый, кто начинал работать с Django 1.1 (или ранее), почти наверняка спотыкался об этот камень — шаблонный тег {% if %} поддерживает булеву логику только на базовом уровне.
Читать дальше →
Всего голосов 64: ↑50 и ↓14 +36
Просмотры 2.8K
Комментарии 38

Django 1.2 и CSRF

Django *
Перевод
CSRF, или Cross-Site Request Forgery (межсайтовая подделка запроса) — это, возможно, одна из самых забываемых уязвимостей. Разработчики, как правило, знают о SQL инъекциях и XSS атаках, но очень часто забывают о CSRF-атаках.
Читать дальше →
Всего голосов 49: ↑45 и ↓4 +41
Просмотры 8.9K
Комментарии 22

Оформляем формы

Django *
У форм в Django есть несколько предопределенных методов as_p(), as_table() и as_ul(), которые отображают форму как набор параграфов, таблицу или список. На практике этих методов не всегда достаточно, чтобы формы выглядели так, как нам хочется.

Допустим, верстальщик сверстал все формы div-ами. Документация предлагает в этом случае писать нужные теги в ручную в шаблоне. Если форма у нас только одна, можно поступить и так. Если форм несколько, то этот подход сразу же теряет все свое очарование. Решение очень простое — пронаследуем наш собственный класс форм от forms.Form или forms.ModelForm и обучим его рисовать формы так, как нужно нам.
Читать дальше →
Всего голосов 51: ↑41 и ↓10 +31
Просмотры 17K
Комментарии 25

Сглаживая кривую

Django *
Перевод
Практически для всех возможностей Django существуют способы модификации и расширения. Крайне редко может понадобиться переписывать существенную часть функционала Django только для того, чтобы изменить действие какого-то инструмента. Например, если вы хотите изменить внешний вид формы, вы можете отказаться от внешнего вида «по умолчанию» и создать собственное поле, или даже просто использовать собственный HTML. В обоих случаях вы выигрываете по спектру возможностей, сохраняя все остальные преимущества библиотеки форм.

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

До выхода в свет версии Django 1.2 для ORM такая кривая имела аналогичный вид, за одним исключением: существенный скачок в конце. Этот скачок появлялся в связи с тем, что при необходимости создания нестандартного SQL-запроса требовалось выйти за пределы ORM. Чтобы использовать определённый функционал ORM, пользователю пришлось бы создавать его заново самостоятельно, хоть это и не является само по себе катастрофой. В версии Django 1.2 добавлен метод Model.objects.raw (), который решает эту проблему и, таким образом, сглаживает эту кривую для ORM.

Читать дальше →
Всего голосов 64: ↑59 и ↓5 +54
Просмотры 1.4K
Комментарии 9