Django Extensions Addon
An dieser Stelle wollen wir uns ein weiteres Helferlein installieren, die Djanto-Extensions. Diese reichern die Default-Subkommandos von manage.py
um das eine oder andere hilfreiche Subkommando an.
Zur Doku der Extensions geht es hier: https://django-extensions.readthedocs.io/en/latest/
Django Extensions installieren
Fügen wir die Django Extensions der requirements-dev.in
hinzu:
factory-boy
django-debug-toolbar
django-extensions
Kompilieren …
(eventenv) pip-compile requirements-dev.in
Und syncen …
(eventenv) pip-sync requirements.txt requirements-dev.txt
Dann müssen wir die Django Extensions auch noch in den event_manager/settings.py
registrieren:
INSTALLED_APPS.extend(
["events", "user", "pages"]
)
THIRD_PARTY_DEV = ["debug_toolbar", "django_extensions"]
INSTALLED_APPS.extend(THIRD_PARTY_DEV)
Wir können die Django-Extensions jetzt nutzen. Wenn wir python manage.py
ausführen, sehen wir neben den Standard-Kommandos noch einen neuen Bereich:
Es würde zu weit führen, alle Kommandos in diesem Buch zu beschreiben, deshalb sei an dieser Stelle auf die Doku verwiesen.
(eventenv) python manage.py
[django_extensions]
admin_generator
clean_pyc
clear_cache
compile_pyc
create_command
create_jobs
create_template_tags
delete_squashed_migrations
describe_form
drop_test_database
dumpscript
export_emails
find_template
generate_password
generate_secret_key
graph_models
list_model_info
list_signals
mail_debug
merge_model_instances
notes
pipchecker
print_settings
print_user_for_session
reset_db
reset_schema
runjob
runjobs
runprofileserver
runscript
runserver_plus
set_default_site
set_fake_emails
set_fake_passwords
shell_plus
show_template_tags
show_urls
sqlcreate
sqldiff
sqldsn
sync_s3
syncdata
unreferenced_files
update_permissions
validate_templates
Nützliche Kommandos
Beispielhaft seien hier mal ein paar nützliche Kommandos aufgezeigt.
show_urls
Mit python manage.py show_urls
lassen sich alle verwendeten Routen im System anzeigen. Ein sehr praktisches Tool bei größeren Projekten.
python manage.py show_urls
python manage.py print_settings
Mit python manage.py print_settings
lassen sich die aktuellen Settings ausdrucken.
python manage.py print_settings
python manage.py reset_db
Mit python manage.py reset_db
wird die Datenbank komplett gelöscht. Alle Migrationen müssen neu ausgeführt und alle Testdaten neu eingespielt werden.
In der ersten Entwicklungsphase eines Projekts oft sehr hilfreich. Hinweis: Die Migrationsdateien werden nicht zerstört!
python manage.py reset_db
python manage.py shell_plus
Erweitert die Django-Shell um das Importieren aller Models aus den Apps. Spart Tipparbeit im Umgang mit der Shell.
python manage.py shell_plus
python manage.py validate_templates
Template-Fehler werden von Django nicht weiter angemeckert und gehen oft silent unter. validate_template
schafft hier Abhilfe.
python manage.py validate_templates