[modifica]
Dal Django 1.7, accedendo settings.INSTALLED_APPS
è scoraggiato: "Your code should never access INSTALLED_APPS directly. Use django.apps.apps instead." - johanno
Quindi il modo beato: versione
from django.apps import apps
for app in apps.get_app_configs():
print(app.verbose_name, ":")
for model in app.get_models():
print("\t", model)
più vecchio di questa risposta:
Tutte le applicazioni sono registrate nel file settings.py
.
In [1]: from django.conf import settings
In [2]: print(settings.INSTALLED_APPS)
['django.contrib.auth', 'django.contrib.contenttypes',
'django.contrib.sessions', 'django.contrib.sites',
'django.contrib.messages', 'django.contrib.staticfiles',
'django.contrib.admin', 'raven.contrib.django']
È possibile importare ogni applicazione ed elencare i loro attributi:
In [3]: from pprint import pprint
In [4]: for app_name in settings.INSTALLED_APPS:
try:
module_ = __import__(app_name)
except ImportError:
pass
map(print, ['=' * 80, "MODULE: "+app_name, '-' * 80])
pprint(module_.__dict__)
Per poter utilizzare la nuova funzione di stampa anziché l'istruzione di stampa nei vecchi Python potrebbe essere necessario emettere un from __future__ import print_function
(o semplicemente cambia la riga contenente la chiamata print
).
fonte
2010-11-06 00:44:41
Dalla CLI 'manage.py': http://stackoverflow.com/questions/21566919/django-listing-installed-apps –