From c58c1f43cf4f35088f815692a5410261e21dfc47 Mon Sep 17 00:00:00 2001
From: Malcolm Tredinnick <malcolm.tredinnick@gmail.com>
Date: Mon, 6 Oct 2008 04:54:14 +0000
Subject: [PATCH] Fixed #5753 -- Allow createsuperuser to work in situations
 where there might be a valid password database entry for the current user id.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9158 bcc190cf-cafb-0310-a4f2-bffc1f526a37
---
 .../contrib/auth/management/commands/createsuperuser.py   | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/django/contrib/auth/management/commands/createsuperuser.py b/django/contrib/auth/management/commands/createsuperuser.py
index aaedcab0f4..32d845daef 100644
--- a/django/contrib/auth/management/commands/createsuperuser.py
+++ b/django/contrib/auth/management/commands/createsuperuser.py
@@ -57,10 +57,12 @@ class Command(BaseCommand):
         # Try to determine the current system user's username to use as a default.
         try:
             import pwd
-        except ImportError:
-            default_username = ''
-        else:
             default_username = pwd.getpwuid(os.getuid())[0].replace(' ', '').lower()
+        except (ImportError, KeyError):
+            # KeyError will be raised by getpwuid() if there is no
+            # corresponding entry in the /etc/passwd file (a very restricted
+            # chroot environment, for example).
+            default_username = ''
 
         # Determine whether the default username is taken, so we don't display
         # it as an option.