Django

Code

Changeset 9043

Show
Ignore:
Timestamp:
09/16/08 00:39:49 (4 months ago)
Author:
adrian
Message:

Fixed #9092 -- Improved validation of app/project names by startapp/startproject so that it doesn't allow names to start with a number.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/management/base.py

    r8282 r9043  
    195195    import shutil 
    196196    other = {'project': 'app', 'app': 'project'}[app_or_project] 
    197     if not re.search(r'^\w+$', name): # If it's not a valid directory name. 
    198         raise CommandError("%r is not a valid %s name. Please use only numbers, letters and underscores." % (name, app_or_project)) 
     197    if not re.search(r'^[_a-zA-Z]\w*$', name): # If it's not a valid directory name. 
     198        # Provide a smart error message, depending on the error. 
     199        if not re.search(r'^[_a-zA-Z]', name): 
     200            message = 'make sure the name begins with a letter or underscore' 
     201        else: 
     202            message = 'use only numbers, letters and underscores' 
     203        raise CommandError("%r is not a valid %s name. Please %s." % (name, app_or_project, message)) 
    199204    top_dir = os.path.join(directory, name) 
    200205    try: