Fixed #7421 -- Improved syncdb implementation not to check for exact exception text, in case of alternate Python implementation. Thanks, anto.cuni@gmail.com

git-svn-id: http://code.djangoproject.com/svn/django/trunk@7623 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2008-06-12 04:22:02 +00:00
parent 5309e18cbf
commit acf888b4ba
1 changed files with 10 additions and 1 deletions

View File

@ -34,7 +34,16 @@ class Command(NoArgsCommand):
try: try:
__import__(app_name + '.management', {}, {}, ['']) __import__(app_name + '.management', {}, {}, [''])
except ImportError, exc: except ImportError, exc:
if not exc.args[0].startswith('No module named management'): # This is slightly hackish. We want to ignore ImportErrors
# if the "management" module itself is missing -- but we don't
# want to ignore the exception if the management module exists
# but raises an ImportError for some reason. The only way we
# can do this is to check the text of the exception. Note that
# we're a bit broad in how we check the text, because different
# Python implementations may not use the same text. CPython
# uses the text "No module named management".
msg = exc.args[0]
if not msg.startswith('No module named management') or 'management' not in msg:
raise raise
cursor = connection.cursor() cursor = connection.cursor()