app/django/core/management/commands/startapp.py
changeset 323 ff1a9aa48cfd
parent 54 03e267d67478
--- a/app/django/core/management/commands/startapp.py	Tue Oct 14 12:36:55 2008 +0000
+++ b/app/django/core/management/commands/startapp.py	Tue Oct 14 16:00:59 2008 +0000
@@ -3,8 +3,7 @@
 from django.core.management.base import copy_helper, CommandError, LabelCommand
 
 class Command(LabelCommand):
-    help = ("Creates a Django app directory structure for the given app name"
-            " in the current directory.")
+    help = "Creates a Django app directory structure for the given app name in the current directory."
     args = "[appname]"
     label = 'application name'
 
@@ -16,6 +15,7 @@
     def handle_label(self, app_name, directory=None, **options):
         if directory is None:
             directory = os.getcwd()
+
         # Determine the project_name by using the basename of directory,
         # which should be the full path of the project directory (or the
         # current directory if no directory was passed).
@@ -23,6 +23,15 @@
         if app_name == project_name:
             raise CommandError("You cannot create an app with the same name"
                                " (%r) as your project." % app_name)
+
+        # Check that the app_name cannot be imported.
+        try:
+            __import__(app_name)
+        except ImportError:
+            pass
+        else:
+            raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name)
+
         copy_helper(self.style, 'app', app_name, directory, project_name)
 
 class ProjectCommand(Command):