parent
d6dc88cbc1
commit
0d2c8ff2be
|
@ -41,6 +41,9 @@ def find_management_module(app_name):
|
||||||
|
|
||||||
Raises ImportError if the management module cannot be found for any reason.
|
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 = app_name.split('.')
|
||||||
parts.append('management')
|
parts.append('management')
|
||||||
parts.reverse()
|
parts.reverse()
|
||||||
|
@ -108,7 +111,7 @@ def get_commands():
|
||||||
|
|
||||||
# Find the installed apps
|
# Find the installed apps
|
||||||
try:
|
try:
|
||||||
settings.INSTALLED_APPS
|
installed_apps = settings.INSTALLED_APPS
|
||||||
except ImproperlyConfigured:
|
except ImproperlyConfigured:
|
||||||
# Still useful for commands that do not require functional
|
# Still useful for commands that do not require functional
|
||||||
# settings, like startproject or help.
|
# settings, like startproject or help.
|
||||||
|
@ -118,6 +121,8 @@ def get_commands():
|
||||||
# avoid catching ImproperlyConfigured errors that aren't caused
|
# avoid catching ImproperlyConfigured errors that aren't caused
|
||||||
# by the absence of a settings module.
|
# by the absence of a settings module.
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
|
apps.populate_apps(installed_apps)
|
||||||
|
apps.populate_models()
|
||||||
app_configs = apps.get_app_configs()
|
app_configs = apps.get_app_configs()
|
||||||
app_names = [app_config.name for app_config in app_configs]
|
app_names = [app_config.name for app_config in app_configs]
|
||||||
|
|
||||||
|
|
|
@ -344,11 +344,9 @@ class AppCommand(BaseCommand):
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
if not app_labels:
|
if not app_labels:
|
||||||
raise CommandError("Enter at least one application label.")
|
raise CommandError("Enter at least one application label.")
|
||||||
# Populate models and don't use only_with_models_module=True when
|
# Don't use only_with_models_module=True in get_app_config() to tell
|
||||||
# calling get_app_config() to tell apart missing apps from apps
|
# apart missing apps from apps without a model module -- which can't
|
||||||
# without a model module -- which can't be supported with the legacy
|
# be supported with the legacy API since it passes the models module.
|
||||||
# API since it passes the models module to handle_app().
|
|
||||||
apps.populate_models()
|
|
||||||
try:
|
try:
|
||||||
app_configs = [apps.get_app_config(app_label) for app_label in app_labels]
|
app_configs = [apps.get_app_config(app_label) for app_label in app_labels]
|
||||||
except (LookupError, ImportError) as e:
|
except (LookupError, ImportError) as e:
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import os
|
|
||||||
from django.core.management.base import NoArgsCommand
|
|
||||||
from optparse import make_option
|
from optparse import make_option
|
||||||
|
import os
|
||||||
|
|
||||||
|
from django.core.management.base import NoArgsCommand
|
||||||
|
|
||||||
|
|
||||||
class Command(NoArgsCommand):
|
class Command(NoArgsCommand):
|
||||||
|
@ -64,11 +65,6 @@ class Command(NoArgsCommand):
|
||||||
raise ImportError
|
raise ImportError
|
||||||
|
|
||||||
def handle_noargs(self, **options):
|
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)
|
use_plain = options.get('plain', False)
|
||||||
no_startup = options.get('no_startup', False)
|
no_startup = options.get('no_startup', False)
|
||||||
interface = options.get('interface', None)
|
interface = options.get('interface', None)
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
from django.apps import apps
|
||||||
|
from django.conf import settings
|
||||||
from django.core.handlers.wsgi import WSGIHandler
|
from django.core.handlers.wsgi import WSGIHandler
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,4 +12,9 @@ def get_wsgi_application():
|
||||||
case the internal WSGI implementation changes or moves in the future.
|
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()
|
return WSGIHandler()
|
||||||
|
|
Loading…
Reference in New Issue