Django Extensions

django-extensions добавляет множество полезных команд и утилит для разработки Django приложений.

Установка

1# Установка пакета
2pip install django-extensions
1# Или через Poetry
2poetry add django-extensions

Настройка

1# settings.py
2INSTALLED_APPS = [
3    'django_extensions',
4]

Полезные команды

 1# Улучшенная консоль с автоимпортом моделей
 2python manage.py shell_plus
 3
 4# Генерация диаграммы моделей
 5python manage.py graph_models -a -g -o models.png
 6
 7# Показ URLs
 8python manage.py show_urls
 9
10# Очистка неиспользуемых файлов
11python manage.py clean_pyc
12
13# Создание секретного ключа
14python manage.py generate_secret_key
15
16# Проверка настроек
17python manage.py check_settings

Дополнительные поля моделей

 1from django_extensions.db.models import TimeStampedModel
 2
 3class Book(TimeStampedModel):
 4    title = models.CharField(max_length=200)
 5    # Автоматически добавляются created и modified поля
 6
 7from django_extensions.db.models import ActivatorModel
 8
 9class Article(ActivatorModel):
10    title = models.CharField(max_length=200)
11    # Автоматически добавляются status и activation_date поля

Настройка shell_plus

1# settings.py
2SHELL_PLUS_PRE_IMPORTS = [
3    ('datetime', ('datetime', 'timedelta', 'date')),
4    ('decimal', ('Decimal',)),
5]
6
7SHELL_PLUS_MODEL_IMPORTS = [
8    ('myapp.models', ('User', 'Book')),
9]

FAQ

Q: Как настроить shell_plus?
A: Используй SHELL_PLUS_PRE_IMPORTS в settings.py.

Q: Можно ли генерировать диаграммы в других форматах?
A: Да, поддерживаются PNG, PDF, DOT и другие.