From 2dcde523abe6dca42d9b2d46a47c402979974c77 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 6 Jan 2014 22:57:56 +0100 Subject: [PATCH] Avoided catching ImproperlyConfigured on django.setup(). Fixed #21737. Thanks Florian for the report. Also removed redundant imports in that file. --- django/core/management/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/django/core/management/__init__.py b/django/core/management/__init__.py index 34597bfa5f..6d0cb7ea3d 100644 --- a/django/core/management/__init__.py +++ b/django/core/management/__init__.py @@ -261,7 +261,6 @@ class ManagementUtility(object): usage.append(" %s" % name) # Output an extra note if settings are not properly configured try: - from django.conf import settings settings.INSTALLED_APPS except ImproperlyConfigured as e: usage.append(style.NOTICE( @@ -343,7 +342,6 @@ class ManagementUtility(object): elif cwords[0] in ('dumpdata', 'sql', 'sqlall', 'sqlclear', 'sqlcustom', 'sqlindexes', 'sqlsequencereset', 'test'): try: - from django.apps import apps app_configs = apps.get_app_configs() # Get the last part of the dotted path as the app name. options += [(app_config.label, 0) for app_config in app_configs] @@ -386,10 +384,12 @@ class ManagementUtility(object): pass # Ignore any option errors at this point. try: - django.setup() + settings.INSTALLED_APPS except ImproperlyConfigured: # Some commands are supposed to work without configured settings pass + else: + django.setup() try: subcommand = self.argv[1]