Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Windows Tipps & SecurityGetting Repeated No Caller ID Calls? Here’s What’s Really Going On(22.09.2026 um 22:31 Uhr)
Windows Tipps & SecurityHöllenmaschine: Gaming-Peripherie für gut 1.800 Euro für die HMX 6(23.09.2026 um 10:20 Uhr)
Windows Tipps & SecurityDas nächste große Ding: KI-Agenten(23.09.2026 um 10:30 Uhr)
Sichere ProgrammierungHow AI Is Making Restaurant Menus Easier to Navigate(23.09.2026 um 10:55 Uhr)
Windows Tipps & SecurityGetting Repeated No Caller ID Calls? Here’s What’s Really Going On(22.09.2026 um 22:31 Uhr)
Windows Tipps & SecurityHöllenmaschine: Gaming-Peripherie für gut 1.800 Euro für die HMX 6(23.09.2026 um 10:20 Uhr)
Windows Tipps & SecurityDas nächste große Ding: KI-Agenten(23.09.2026 um 10:30 Uhr)
Sichere ProgrammierungHow AI Is Making Restaurant Menus Easier to Navigate(23.09.2026 um 10:55 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

I Got Tired of Manually Managing INSTALLED_APPS in Django, So I Built a CLI Tool

Every Django developer knows this moment. You just installed a new package. You open settings.py, scroll down to INSTALLED_APPS, and then you pause — "wait, is it djangorestframework or rest_framework?" You google it. You add it. You go b…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Every Django developer knows this moment.



You just installed a new package. You open settings.py, scroll down to INSTALLED_APPS, and then you pause — "wait, is it djangorestframework or rest_framework?" You google it. You add it. You go back to the terminal, manually add it to requirements.txt with the right version. Then you do this same thing for the next package. And the next.



It's not painful enough to complain about loudly — but it's annoying enough that I kept thinking there has to be a better way.



So I built one: django-include-apps, a CLI tool that handles all of this for you.









The Problem



If you've worked with Django long enough, you know that pip package names and INSTALLED_APPS names are often completely different things:




































What you pip install
What you add to INSTALLED_APPS
djangorestframework rest_framework
django-cors-headers corsheaders
django-filter django_filters
django-debug-toolbar debug_toolbar
django-allauth allauth
django-crispy-forms crispy_forms


There's zero standardization here. Every package author picks whatever they want. And if you're new to Django, this is genuinely confusing. If you're experienced, it's just friction that adds up every single day.



On top of that, there's requirements.txt to keep updated. And if you're removing a package — do you remember which pip name maps back to which app? Probably not off the top of your head.









What django-include-apps Does



It automates the whole flow. Install the package, add it to INSTALLED_APPS, update requirements.txt — all from one command.




pip install django-include-apps









Adding a single package






django-include-apps add-app djangorestframework









Installing package 'djangorestframework'...
Package 'djangorestframework' has been installed.
Using 'rest_framework' as the app name for INSTALLED_APPS.
App 'rest_framework' has been added to INSTALLED_APPS.
? Add 'djangorestframework==3.14.0' to requirements.txt? Yes
Added 'djangorestframework==3.14.0' to requirements.txt






That's it. No context switching, no googling, no manual edits.






Adding multiple packages at once



Starting a new project? You can batch install everything:




django-include-apps add-apps djangorestframework django-cors-headers django-filter









Installing package 'djangorestframework'...
App 'rest_framework' has been added to INSTALLED_APPS.

Installing package 'django-cors-headers'...
App 'corsheaders' has been added to INSTALLED_APPS.

Installing package 'django-filter'...
App 'django_filters' has been added to INSTALLED_APPS.

? Add all packages to requirements.txt? Yes
Added 3 packages to requirements.txt






One command, everything wired up.









How the Package Mapping Works



This was the trickiest part to build. The tool ships with 75+ pre-configured mappings for the most common Django packages, so it already knows that djangorestframework maps to rest_framework, and so on.



For packages not in the list, it prompts you interactively:




django-include-apps add-app my-custom-package









Package 'my-custom-package' has been installed.
? Do you want to use the same name or a different one?
> Use same
Use different
None/Skip

Enter app name to add to INSTALLED_APPS: my_custom_app
App 'my_custom_app' has been added to INSTALLED_APPS.
? Save this mapping (my-custom-package → my_custom_app) for future use? Yes
Saved mapping: my-custom-package → my_custom_app






It saves the mapping so next time you don't have to think about it again. You can also manage mappings directly:




# View all 75+ mappings
django-include-apps view-mappings

# Filter by name pattern
django-include-apps view-mappings --filter "django-*"

# Add a custom mapping manually
django-include-apps mapping add my-package my_app_name












Removing Apps



Removing is just as clean:




django-include-apps remove-app rest_framework









? Are you sure you want to remove 'rest_framework' from INSTALLED_APPS? Yes
App 'rest_framework' has been removed from INSTALLED_APPS.
? Remove 'djangorestframework' from requirements.txt? Yes
Removed 'djangorestframework' from requirements.txt






It handles the reverse mapping automatically — so you don't need to remember that rest_framework came from djangorestframework.



For multiple apps:




django-include-apps remove-apps rest_framework corsheaders django_filters







Core Django apps (django.contrib.*) are protected from removal, so you can't accidentally nuke something critical.










My Favourite Feature: Unused App Detection



This one I didn't even plan originally — it just made sense once I started thinking about the removal flow.



Run remove-app with no arguments and it scans every .py file in your project, looking for apps in INSTALLED_APPS that aren't actually imported anywhere:




django-include-apps remove-app









Scanning project for unused apps...

Found 3 unused app(s):
• rest_framework
• corsheaders
• debug_toolbar

? Select apps to remove (use space to select, enter to confirm)
◉ rest_framework
◯ corsheaders
◉ debug_toolbar

App 'rest_framework' has been removed from INSTALLED_APPS.
App 'debug_toolbar' has been removed from INSTALLED_APPS.

? Remove selected packages from requirements.txt? Yes
Removed 2 packages from requirements.txt






You get a checkbox UI so you can pick exactly what to clean up. It won't touch Django defaults.



This is genuinely useful for projects that have grown over time and accumulated packages that nobody uses anymore.









Version Specifiers Work Too



If you need a specific version, just pass it in:




# Exact version
django-include-apps add-app djangorestframework==3.14.0

# Minimum version
django-include-apps add-app django-filter>=2.0

# Compatible version
django-include-apps add-app django-cors-headers~=4.0.0

# Multiple with versions
django-include-apps add-apps djangorestframework==3.14.0 django-filter>=2.0






It strips the version specifier for mapping lookups, then uses the full spec for pip and requirements.txt.









requirements.txt Handling



The tool is smart about what state your requirements.txt is in.



If it exists — it appends or updates the package.



If it doesn't exist yet — it gives you options:




? requirements.txt not found. What would you like to do?
> Create requirements.txt with this package
Create requirements.txt with all project packages
Skip






The second option is handy — it scans your INSTALLED_APPS and generates a full requirements.txt from everything currently installed.









Installing from requirements.txt



If you clone a project and want to install dependencies and auto-configure INSTALLED_APPS:




django-include-apps install-requirements -r requirements.txt









Found 15 package(s) in requirements.txt
Installing packages...
Successfully installed packages from requirements.txt

Detecting Django-related packages...
Found 5 Django package(s):
• djangorestframework → rest_framework
• django-cors-headers → corsheaders
• django-filter → django_filters
• django-allauth → allauth
• celery (not mapped)

? Select packages to add to INSTALLED_APPS:
◉ djangorestframework (rest_framework)
◉ django-cors-headers (corsheaders)
◯ django-filter (django_filters)
◉ django-allauth (allauth)

✓ Added 'rest_framework' to INSTALLED_APPS
✓ Added 'corsheaders' to INSTALLED_APPS
✓ Added 'allauth' to INSTALLED_APPS












Shell Completion



Auto-complete for bash, zsh, and fish is built in:




# Install for bash
django-include-apps completion bash --install

# Install for zsh
django-include-apps completion zsh --install

# Install for fish
django-include-apps completion fish --install






Then restart your terminal and tab completion just works.









Working with Multiple Projects



Every command supports --start-dir (or -d) if you're running from outside the project root or working with a monorepo:




django-include-apps add-app djangorestframework -d /path/to/my/django/project
django-include-apps install-requirements -r requirements.txt -d /path/to/project












Some Packages That Are Already Mapped



Here's a small sample of the 75+ packages that are pre-configured:
































































Package App Name
djangorestframework rest_framework
django-cors-headers corsheaders
django-allauth allauth
channels channels
django-storages storages
django-redis django_redis
django-taggit taggit
django-guardian guardian
django-oauth-toolkit oauth2_provider
django-import-export import_export
django-jazzmin jazzmin
celery celery
daphne daphne



Packages like pillow, psycopg2, gunicorn, and mysqlclient are also mapped — but correctly marked as dependency-only, so they won't be added to INSTALLED_APPS.




See the full list of mappings on GitHub →









What's Coming Next



There's a lot I want to add. Things on the roadmap:




  • Middleware management

  • URL config suggestions

  • Settings detection

  • .env file generation

  • Package update checker

  • Project scaffolding



If any of these sound useful — or you have ideas I haven't thought of — open an issue and I'll add it to the roadmap.









Try It Out






pip install django-include-apps








If you run into any issues or a package mapping is missing, PRs are very welcome. Adding a new mapping is literally just one line in a JSON file — it's a great first contribution if you're looking for one.







If this saved you some time, a ⭐ on GitHub would mean a lot — it helps others find the project too!




Built this out of frustration during a project setup. It's crossed 7,800+ downloads since release — turns out a lot of people have the same frustration. Hope it saves you some time too.

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten I Got Tired of Manually Managing INSTALLED_APPS in Django, So I Built a CLI Tool

Thematisch verwandte Begriffe: Tired, Manually, Managing, INSTALLEDAPPS · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-96258 | A vulnerability has been found in onSite internet GmbH Auktion NG Auktio…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick