← All posts tagged Django

kb

Не смог в тестирование админки. Модел-форму превратить в HTML можно, а в словарь нельзя, например. Ну и куча подобного. Как они вообще свою админку тестируют, интересно?

kb

Django is a ghetto. Другими словами не описать этот бардак. Словил багу, что тест работает, а на продакшне бага о том, что я пытаюсь request.POST модифицировать (а он по-умолчанию immutable). Оказалось, что:
1. в джанго TestClient баг в том, что по-умолчанию на post-запрос он шлёт multipart-форму.
2. в самой джанге баг в том, что при отсылании multipart-контента создаётся mutable (причем, явно они это делают) QueryDict.

kb

А вообще, в джанго идея приложений очень и очень крута. Вот прямо смотришь на их список и примерно понимаешь архитектуру всего проекта, а не голое controllers, bl, models и т.п. А вот название (приложения, applications) очень плохое. Прямо настолько плохое, что я только недавно понял, что оно совершенно не должно иметь в виду максимальную изоляцию между ними.

kb

Django иногда поражает тем, что какие-то фичи они сделали только вот-вот недавно, а какие-то только делают. К примеру, их Javascript-gettext-лексер до невозможности глуп (хотя казалось бы, используйте babel'евский). Он даже не в состоянии понять var s = gettext("foo");. Кошмар.

Ну и, собственно, в 1.4 они взяли и переписали лексер. Пойду обновлять до 1.4 вот ради этого сейчас.

kb

github.com таки я поборол его, но не до конца. всё же джанговская зависимость от настроек отбила всякое желание хоть минимальный тест заводить. отстой, иду мыть руки, допивать виски и спать

kb

В джанго адаптеры баз данных сделаны через одно место. Думали адаптер сошлётся на какой-нибудь класс, реализующий какой-нибудь интерфейс? Нет! Он ссылается на модуль, в котором огромная куча всякой фигни, из которой невозможно понять, что требуется реализовывать, а что нет.

В результате собирается целая команда "django-nonrel" бравых ребят, которые пытаются отделить кусок, который надо реализовывать от куска, который не надо реализовывать. Ну что за бред.

kb

А django-piston, кстати, фигня какая-то. Мне лично не нравится: 1. как сделали в принципе (зачем классами?) 2. нет вложенности ресурсов REST. 3. нет никакой генерации документации. 4. нет единого места описания API как такового (а именно — параметров POST или GET). 5. название тупое.

В общем, хоть бери и своё пиши.

kb

Джанго ловит в manage.py при запуске (python manage.py runserver) все ошибки импорта и вместо них выводит:
Error: Can't find the file 'settings.py' in the directory containing 'manage.py'. It appears you've customized things.

А вы бы догадались, что на самом деле вы просто забыли установить нужный модуль (mongoengine в моем случае)? Хотя, наверное, джанго всегда прав, и внутри settings.py ничего импортировать нельзя.