Я разработчик » Django

Django-pipeline converter on windows issue

Django, Python, Разработка Комментариев нет

Столкнулся со следующей проблемой. django-pipeline при обработке coffeescript (и других форматов) через manage collectstatic выдает  системную ошибку 22: неправильный синтаксис в имени файла или метки тома. После изучения настроек pipeline оказалось, что проблема не в моих настройках, а находится на стыке pipeline и библиотек python.

А именно: shlex или pipes. Конкретно метод quotes(), который из pipes в 3-м питоне переполз в shlex. Но обо всем по порядку. Открываем site-packages/pipeline/_init_.py

строка 5:

try:
from shlex import quote as quote
except ImportError:
from pipes import quote as quote

строка 44:

  compiler.compile_file(quote(infile), quote(outfile), outdated=outdated, force=force)

Это передает в обработчик пути файлов для обработки: входной и выходной, обернутые в кавычки. В кавычках и оказалась вся соль. Дело в том, что quote() оборачивает в одинарные кавычки, которые не воспринимаются стандартным обработчиком в Windows.

Если Вы только разрабатываете под windows и готовы поставить костыль и помнить о нем, то можно поставить костыль в виде собственной функции quote(), перекрывающей работу стандартной. Например, вот так:

try:
from shlex import quote as _quote
except ImportError:
from pipes import quote as _quote

if os.name == ‘nt':
def quote(arg):
return # впишите здесь свой вариант обработки
else:
quote = _quote

Другой выход — дождаться, когда починят вот этот запрос: https://github.com/cyberdelia/django-pipeline/issues/444

TDD и Django

Django, Разработка Комментариев нет

Просто оставлю здесь ссылочку на хороший туториал по TDD в DJango http://www.tdd-django-tutorial.com/

Eclipse Django Templates integration

Django, Eclipse, Модули, Разработка, Фишки Комментариев нет

Интегрировать подсветку синтаксиса шаблонов Django и сниппеты в Eclipse можно через плагин django-editor

Установить можно через добавление репозитория http://eclipse.kacprzak.org/updates

О South и syncdb в двух словах

App Engine, CloudSQL, Django, Python, Модули, Разработка, Расширения, Совместная работа, Фишки Один комментарий

Начну с определения. South — приложение Django для осуществления миграций. У меня это слово всегда вызывало больше вопросов, чем ответов поэтому, лучше расскажу что к чему.
Когда мы пишем/меняем модель нам необходимо создавать/менять структуру данных в самой базе. Если мы просто создаем модель, то с этой задачей справляется syncdb, но когда мы вносим изменения в модель syncdb оказывается беспомощной, и мы остаемся один на один со структурой данных в базе не отвечающей требованиям кода (моделей). Читать далее »

xhtml2pdf и вертикальное выравнивание в таблице

Django, Python, Библиотеки, Разработка, Фишки Комментариев нет

Так уж случилось, что для генерации PDF в приложении использую библиотеку xhtml2pdf. Библиотека позволяет сгенерировать PDF на основе HTML + CSS. Однако, поддержка CSS не совсем полная. Некоторые правила игнорируются, а комплексное применение правил иногда не приводит к нужному результату.

Например, столкнулся с ситуацией, когда "игнорировались" отступы внутри ячейки. Строка оставалась прилепленной к верхней границе. При этом, padding-top для td как бы игнорировался. Оказалось, что рендер определяет центр строки и правила ее выравнивания по вертикали несколько иначе, чем браузер. Картина исправилась, когда было выставлено свойство line-height: 75%.

Django CRUD

Django, Фреймфорки Комментариев нет

Довольно специфическая реализация CRUD для Django.