0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: orm, django-extensions, ipython, shell_plus, runserver_plus, werkzeug, django, manage.py shell, manage.py runserver, трейсбек, activatormodel, timestampedmodel, modified, created, foreignkeyautocompleteadmin, foreignkey</p>
1
<p>Теги: orm, django-extensions, ipython, shell_plus, runserver_plus, werkzeug, django, manage.py shell, manage.py runserver, трейсбек, activatormodel, timestampedmodel, modified, created, foreignkeyautocompleteadmin, foreignkey</p>
2
<p>Давайте рассмотрим самое полезное, что есть в составе модуля<strong>django-extensions</strong>- набора полезных дополнений к любому проекту на Django.</p>
2
<p>Давайте рассмотрим самое полезное, что есть в составе модуля<strong>django-extensions</strong>- набора полезных дополнений к любому проекту на Django.</p>
3
<h2>shell_plus, продвинутая версия manage.py shell</h2>
3
<h2>shell_plus, продвинутая версия manage.py shell</h2>
4
<p>От обычной команды отличается тем, что автоматически импортирует все модели и необходимые функции для работы с<strong>ORM</strong>(например,<strong>Q</strong>и<strong>Avg</strong>). Рекомендуется использовать вместе с<strong>ipython</strong>, тогда будет автодополнение, подсветка и сохранение истории при перезапуске интерпретатора. Работает даже с кастомными пользовательскими моделями: если у вас переопределена модель<strong>User</strong>,<strong>shell_plus</strong>импортирует правильную.</p>
4
<p>От обычной команды отличается тем, что автоматически импортирует все модели и необходимые функции для работы с<strong>ORM</strong>(например,<strong>Q</strong>и<strong>Avg</strong>). Рекомендуется использовать вместе с<strong>ipython</strong>, тогда будет автодополнение, подсветка и сохранение истории при перезапуске интерпретатора. Работает даже с кастомными пользовательскими моделями: если у вас переопределена модель<strong>User</strong>,<strong>shell_plus</strong>импортирует правильную.</p>
5
<h2>runserver_plus, продвинутая версия manage.py runserver</h2>
5
<h2>runserver_plus, продвинутая версия manage.py runserver</h2>
6
<p>Продвинутость заключается в том, что под капотом используется<strong>Werkzeug</strong>для рендеринга страницы ошибки в случае пятисотых статусов. Вместо привычной жёлтой страницы ошибки Django с трейсбеком и значением некоторых переменных, показывается версия<strong>Werkzeug</strong>, которая позволяет запускать любой код на Python в тех фреймах, в которых произошли ошибки. Прямо в браузере! Радикально ускоряет поиск ошибки.</p>
6
<p>Продвинутость заключается в том, что под капотом используется<strong>Werkzeug</strong>для рендеринга страницы ошибки в случае пятисотых статусов. Вместо привычной жёлтой страницы ошибки Django с трейсбеком и значением некоторых переменных, показывается версия<strong>Werkzeug</strong>, которая позволяет запускать любой код на Python в тех фреймах, в которых произошли ошибки. Прямо в браузере! Радикально ускоряет поиск ошибки.</p>
7
<h2>Набор базовых моделей</h2>
7
<h2>Набор базовых моделей</h2>
8
<p>Например,<strong>ActivatorModel</strong>со статусом и датой активации или<strong>TimeStampedModel</strong>с полями<strong>created</strong>и<strong>modified</strong>. Случаи очень частые, поэтому и модели очень полезные. Всё равно их аналоги есть в любом боевом проекте на Django.</p>
8
<p>Например,<strong>ActivatorModel</strong>со статусом и датой активации или<strong>TimeStampedModel</strong>с полями<strong>created</strong>и<strong>modified</strong>. Случаи очень частые, поэтому и модели очень полезные. Всё равно их аналоги есть в любом боевом проекте на Django.</p>
9
<h2>Набор расширений для админки</h2>
9
<h2>Набор расширений для админки</h2>
10
<p>Например,<strong>ForeignKeyAutocompleteAdmin</strong>, который позволяет превратить любое поле<strong>ForeignKey</strong>в админке не просто в выпадашку, а в поле с автодополнением и поиском по указанным полям.</p>
10
<p>Например,<strong>ForeignKeyAutocompleteAdmin</strong>, который позволяет превратить любое поле<strong>ForeignKey</strong>в админке не просто в выпадашку, а в поле с автодополнением и поиском по указанным полям.</p>
11
<p>Как видите, эти утилиты достаточно универсальны и пригодятся почти в любом проекте, поэтому<strong>django-extensions</strong>- один из модулей, которые можно сразу устанавливать на старте проекта.</p>
11
<p>Как видите, эти утилиты достаточно универсальны и пригодятся почти в любом проекте, поэтому<strong>django-extensions</strong>- один из модулей, которые можно сразу устанавливать на старте проекта.</p>
12
<p><em>Есть вопрос? Напишите в комментариях!</em></p>
12
<p><em>Есть вопрос? Напишите в комментариях!</em></p>
13
13