Как перечислить все установленные приложения с помощью manage.py в Django?

Некоторые команды manage.py принимают приложения Django в качестве аргументов. Иногда я хочу использовать эти команды, но не могу запомнить имя приложения. Есть ли способ получить manage.py для предоставления такого списка?

Ответ 1

не готов, но вы можете использовать трубку:

$ echo 'import settings; settings.INSTALLED_APPS' | ./manage.py shell
...
>>> ('django.contrib.auth', 'django.contrib.contenttypes', 
     'django.contrib.sessions', 'django.contrib.sites'...]

или напишите небольшую пользовательскую команду:

import settings
from django.core.management.base import BaseCommand
class Command(BaseCommand):
    def handle(self, *args, **options):
        print settings.INSTALLED_APPS

или более общим образом:

import settings
from django.core.management.base import BaseCommand
class Command(BaseCommand):
    def handle(self, *args, **options):
        print vars(settings)[args[0]]

$ ./manage.py get_settings INSTALLED_APPS
('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 
 'django.contrib.sites', ...]
$ ./manage.py get_settings TIME_ZONE
America/Chicago