[editar]
Desde Django 1.7, acceso a settings.INSTALLED_APPS
se desanima: "Your code should never access INSTALLED_APPS directly. Use django.apps.apps instead." - johanno
Así que la forma bendito es: Versión
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)
anterior de este respuesta:
Todas las aplicaciones están registradas en el archivo 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']
Puede importar cada aplicación y una lista de sus atributos:
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__)
Para utilizar la nueva función de impresión en lugar de la declaración de impresión en Python mayores puede que tenga que emitir una from __future__ import print_function
(o simplemente cambie la línea que contiene la llamada print
).
De 'manage.py' CLI: http://stackoverflow.com/questions/21566919/django-listing-installed-apps –