Сам недавно с удивлением узнал о существовании вживленных дефибриляторов. Например, на этом видео видно, как футболист падает, через некоторое время его трясет и он спокойно поднимается:
Если вы переросли гитхабовский readme, то можете попробовать использовать backdoc. Генерируется полностью самостоятельный one-page-doc с навигацией и inline cтилями из простого маркдауна.
ORM — это часть экосистемы джанги. Её можно легко оторвать, отказавшись в пользу алхимии или чистого SQL, но при этом отказаться и от DRY, тестируемости, мультибазовости, репликаций, миграций и доброго десятка необходимых приложений (south, modeltranslate, tastypie, haystack, taggit, contib.auth, contrib.admin, etc...).
К сожалению увидел в статье больше эмоций, чем глубого понимания ORM как инструмента. А как же select_related, prefetch_related, only?
Проблема с News.__unicode__() решается прописыванием select_related для выборки:
Если не хотите при каджой выборке помнить, что нужно сделать select_related — засуньте его вызов в кастомный метод get_query_set и переопределите менеджер.
Первая — 2 запроса в базу, вторая — если попытаться использовать в качестве ключа для кэширования значение из RegionSite.objects.filter(id__in=regions_id).query, то можно огрести exception, в случае пустого значения regions_id.
Для полноты статье не хватает поругать _clone метод QuerySet'а и пары искуственных тестов с «медленными» джоинами в мускуле на helloworld приложении.
К сожалению увидел в статье больше эмоций, чем глубого понимания ORM как инструмента. А как же select_related, prefetch_related, only?
Проблема с News.__unicode__() решается прописыванием select_related для выборки:
Если не хотите при каджой выборке помнить, что нужно сделать select_related — засуньте его вызов в кастомный метод get_query_set и переопределите менеджер.
Чем плох запрос?
А например в следующем куске кода есть как минимум 2 проблемы:
Первая — 2 запроса в базу, вторая — если попытаться использовать в качестве ключа для кэширования значение из RegionSite.objects.filter(id__in=regions_id).query, то можно огрести exception, в случае пустого значения regions_id.
Для полноты статье не хватает поругать _clone метод QuerySet'а и пары искуственных тестов с «медленными» джоинами в мускуле на helloworld приложении.