25 марта 2011 г.

Ищем верстальщика с амбициями front-end разработчика

Мы ищем нового члена команды‚ готового взять на себя задачи по вёрстке разрабатываемых нами проектов и желающего профессионально расти в качестве front-end разработчика.

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/

5 марта 2011 г.

Нескучные миниатюры в Django

Мы используем для создания миниатюр фотографий на своих проектах замечательный модуль sorl.thumbnail, который помимо всех своих основных фич умеет заменять все картинки на заглушки. Это бывает полезно, когда надо разрабатывать сайт на локальной машине, где фотки с продакшена отсутствуют.

По умолчанию для этого есть опция THUMBNAIL_DUMMY, вот что получается с её помощью:
before


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

В urls.py проекта до строчки
(r'^', include('sorl.thumbnail.urls')),

прописываем
(r'^thumbnail-dummy/(?P<width>\d+)x(?P<height>\d+)/$',  'django.views.generic.simple.redirect_to',
{ 'url': 'http://placekitten.com/%(width)s/%(height)s' }),


В итоге получаем:

after