Набор дополнений к любому проекту на Django
Давайте рассмотрим самое полезное, что есть в составе модуля django-extensions – набора полезных дополнений к любому проекту на Django.
shell_plus, продвинутая версия manage.py shell
От обычной команды отличается тем, что автоматически импортирует все модели и необходимые функции для работы с ORM (например, Q и Avg). Рекомендуется использовать вместе с ipython, тогда будет автодополнение, подсветка и сохранение истории при перезапуске интерпретатора. Работает даже с кастомными пользовательскими моделями: если у вас переопределена модель User, shell_plus импортирует правильную.
runserver_plus, продвинутая версия manage.py runserver
Продвинутость заключается в том, что под капотом используется Werkzeug для рендеринга страницы ошибки в случае пятисотых статусов. Вместо привычной жёлтой страницы ошибки Django с трейсбеком и значением некоторых переменных, показывается версия Werkzeug, которая позволяет запускать любой код на Python в тех фреймах, в которых произошли ошибки. Прямо в браузере! Радикально ускоряет поиск ошибки.
Набор базовых моделей
Например, ActivatorModel со статусом и датой активации или TimeStampedModel с полями created и modified. Случаи очень частые, поэтому и модели очень полезные. Всё равно их аналоги есть в любом боевом проекте на Django.
Набор расширений для админки
Например, ForeignKeyAutocompleteAdmin, который позволяет превратить любое поле ForeignKey в админке не просто в выпадашку, а в поле с автодополнением и поиском по указанным полям.
Как видите, эти утилиты достаточно универсальны и пригодятся почти в любом проекте, поэтому django-extensions – один из модулей, которые можно сразу устанавливать на старте проекта.
Есть вопрос? Напишите в комментариях!