Частные проблемы использования django-evolution

17.06.09 01:17

Django

Сегодняшний день для меня ознаменовался эпичной битвой с django-evolution. С различными неудобствами этого приложения мы в разработке сначала Куда Все Идут, а потом Афиши сталкиваемся уже довольно давно. Сегодняшний же случай наконец заставил меня перебороть лень и изложить эти проблемы для публики.

Должен, тем не менее, обязательно сказать, что не считаю django-evolution плохим средством, потому что [...]

Зачем нужны сигналы

На днях у меня в форуме возникли почти подряд два топика про сигналы. Оба напомнили мне давно закравшееся в голове подозрение о том, что для многих сигналы -- это магия из серии "если что-то не выходит, наверняка для этого нужны сигналы" :-).

Хочу раскрыть тему, потому как рамки форумного ответа особо разгуляться не позволяют.

Django 1.1 beta

27.03.09 01:36

Django

Как многие, без сомнения, знают, недавно вышла Django 1.1 beta. Там в release notes все самое вкусное перечислено, а я немножко вокруг покомментирую.

{% media %}

22.03.09 05:55

Django

Незабвенный герой Анатолия Папанова говаривал, что ежели человек идиот, то это надолго. Мне сейчас кажется, что я как раз в такой ситуации :-). Это я о том, как в джанговских шаблонах делать ссылки на JS, CSS и прочую media.

Еще один

16.03.09 16:31

Django

isagalaev@isagalaev:~$ curl -is http://afisha.yandex.ru/ | grep Server: Server: lighttpd / Pony Powered!

Вот! Подробности позже. И, наверное, даже не у меня...

Джанговские агрегации

15.01.09 17:55

Django

Сделали: http://docs.djangoproject.com/en/dev/topics/db/aggregation/!

Особо приглянувшиеся мне вещи:

Store.objects.annotate(Count('books__authors'))

Store -- это магазин, у него many-to-many на Book, у которого есть many-to-many на Author. Тут делается join по всем нужным таблицам и group by на них. Book.objects.annotate(num_authors=Count('authors')).filter(num_authors__gt=1)

Я очень рад, что having не стали делать отдельным понятием. Это просто фильтр. А уж having там или where -- пусть оно само разбирается.

А также [...]

Изменённые данные в форме

14.01.09 16:17

Django

Когда-то я придумал для своего багтракинга фичу, которая мне казалась уникальной для багтракингов. Фича связана с тем, как обрабатываются изменения, которые человек сохраняет в тикет, в то время, как тикет уже успел поменяться кем-то другим за время с момента открытия того в окне браузера.

И вот на днях, в процессе переписывания TaCo на Джанго (да, я [...]

Как работает SM.Org

Недавно расквитался в первом приближении с давно висящей и давящую на голову задачкой: опубликовал исходный код всех Джанго-приложений, которые поддерживают разные части SoftwareManiacs.Org. И меня посетила мысль поделиться тем, как оно вообще у меня тут все живет.

Выражения в джанговских запросах

21.11.08 19:23

Django

Сегодня был опубликован план на следующий релиз Джанго 1.1. В нем много всякого хорошего, но мое внимание привлекла красота реализации одной из must-have фич, и я решил поделиться с вами неожиданно нахлынувшей на меня радостью :-). Заодно кто-то, как я, узнает новую для себя возможность Питона.

Схема файлового бэкенда Джанго

17.11.08 05:01

Django

По долгу службы ковырялся тут внутри у Джанго вокруг работы с файлами. Всякие хранилища, файловые поля, дескрипторы, врапперы... Признаться, штука вышла далеко не простая ("а я еще во-о-от такой помню..."). Я начал набрасывать себе схему того, как объекты друг с другом взаимодействуют, а потом решил ее причесать и выложить, чтобы остальным проще разбираться было.