Loading django/core/management/__init__.py +6 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,9 @@ def find_management_module(app_name): Raises ImportError if the management module cannot be found for any reason. """ # TODO: this method is only called from get_commands() which has already # imported the application module at that point. parts = app_name.split('.') parts.append('management') parts.reverse() Loading Loading @@ -108,7 +111,7 @@ def get_commands(): # Find the installed apps try: settings.INSTALLED_APPS installed_apps = settings.INSTALLED_APPS except ImproperlyConfigured: # Still useful for commands that do not require functional # settings, like startproject or help. Loading @@ -118,6 +121,8 @@ def get_commands(): # avoid catching ImproperlyConfigured errors that aren't caused # by the absence of a settings module. from django.apps import apps apps.populate_apps(installed_apps) apps.populate_models() app_configs = apps.get_app_configs() app_names = [app_config.name for app_config in app_configs] Loading django/core/management/base.py +3 −5 Original line number Diff line number Diff line Loading @@ -344,11 +344,9 @@ class AppCommand(BaseCommand): from django.apps import apps if not app_labels: raise CommandError("Enter at least one application label.") # Populate models and don't use only_with_models_module=True when # calling get_app_config() to tell apart missing apps from apps # without a model module -- which can't be supported with the legacy # API since it passes the models module to handle_app(). apps.populate_models() # Don't use only_with_models_module=True in get_app_config() to tell # apart missing apps from apps without a model module -- which can't # be supported with the legacy API since it passes the models module. try: app_configs = [apps.get_app_config(app_label) for app_label in app_labels] except (LookupError, ImportError) as e: Loading django/core/management/commands/shell.py +2 −6 Original line number Diff line number Diff line from optparse import make_option import os from django.core.management.base import NoArgsCommand from optparse import make_option class Command(NoArgsCommand): Loading Loading @@ -64,11 +65,6 @@ class Command(NoArgsCommand): raise ImportError def handle_noargs(self, **options): # XXX: (Temporary) workaround for ticket #1796: force early loading of all # models from installed apps. from django.apps import apps apps.populate_models() use_plain = options.get('plain', False) no_startup = options.get('no_startup', False) interface = options.get('interface', None) Loading django/core/wsgi.py +7 −0 Original line number Diff line number Diff line from django.apps import apps from django.conf import settings from django.core.handlers.wsgi import WSGIHandler Loading @@ -10,4 +12,9 @@ def get_wsgi_application(): case the internal WSGI implementation changes or moves in the future. """ # Configure the settings (this happens automatically on the first access). # Populate the app registry. apps.populate_apps(settings.INSTALLED_APPS) apps.populate_models() return WSGIHandler() Loading
django/core/management/__init__.py +6 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,9 @@ def find_management_module(app_name): Raises ImportError if the management module cannot be found for any reason. """ # TODO: this method is only called from get_commands() which has already # imported the application module at that point. parts = app_name.split('.') parts.append('management') parts.reverse() Loading Loading @@ -108,7 +111,7 @@ def get_commands(): # Find the installed apps try: settings.INSTALLED_APPS installed_apps = settings.INSTALLED_APPS except ImproperlyConfigured: # Still useful for commands that do not require functional # settings, like startproject or help. Loading @@ -118,6 +121,8 @@ def get_commands(): # avoid catching ImproperlyConfigured errors that aren't caused # by the absence of a settings module. from django.apps import apps apps.populate_apps(installed_apps) apps.populate_models() app_configs = apps.get_app_configs() app_names = [app_config.name for app_config in app_configs] Loading
django/core/management/base.py +3 −5 Original line number Diff line number Diff line Loading @@ -344,11 +344,9 @@ class AppCommand(BaseCommand): from django.apps import apps if not app_labels: raise CommandError("Enter at least one application label.") # Populate models and don't use only_with_models_module=True when # calling get_app_config() to tell apart missing apps from apps # without a model module -- which can't be supported with the legacy # API since it passes the models module to handle_app(). apps.populate_models() # Don't use only_with_models_module=True in get_app_config() to tell # apart missing apps from apps without a model module -- which can't # be supported with the legacy API since it passes the models module. try: app_configs = [apps.get_app_config(app_label) for app_label in app_labels] except (LookupError, ImportError) as e: Loading
django/core/management/commands/shell.py +2 −6 Original line number Diff line number Diff line from optparse import make_option import os from django.core.management.base import NoArgsCommand from optparse import make_option class Command(NoArgsCommand): Loading Loading @@ -64,11 +65,6 @@ class Command(NoArgsCommand): raise ImportError def handle_noargs(self, **options): # XXX: (Temporary) workaround for ticket #1796: force early loading of all # models from installed apps. from django.apps import apps apps.populate_models() use_plain = options.get('plain', False) no_startup = options.get('no_startup', False) interface = options.get('interface', None) Loading
django/core/wsgi.py +7 −0 Original line number Diff line number Diff line from django.apps import apps from django.conf import settings from django.core.handlers.wsgi import WSGIHandler Loading @@ -10,4 +12,9 @@ def get_wsgi_application(): case the internal WSGI implementation changes or moves in the future. """ # Configure the settings (this happens automatically on the first access). # Populate the app registry. apps.populate_apps(settings.INSTALLED_APPS) apps.populate_models() return WSGIHandler()