Commit faeee611 authored by Jannis Leidel's avatar Jannis Leidel
Browse files

Fixed #17517 -- Added `--name` option to startproject and startapp management...

Fixed #17517 -- Added `--name` option to startproject and startapp management commands to be able to render files without a file extension. Thanks, Florian Apolloner.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17432 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent bb6921ce
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -48,6 +48,11 @@ class TemplateCommand(BaseCommand):
                    help='The file extension(s) to render (default: "py") '
                         'Separate multiple extensions with commas, or use '
                         '-e multiple times.'),
        make_option('--name', '-n', dest='files',
                    action='append', default=[],
                    help='The file name(s) to render '
                         'Separate multiple extensions with commas, or use '
                         '-n multiple times.')
        )
    requires_model_validation = False
    # Can't import settings during this command, because they haven't
@@ -89,10 +94,16 @@ class TemplateCommand(BaseCommand):

        extensions = tuple(
            handle_extensions(options.get('extensions'), ignored=()))
        extra_files = []
        for file in options.get('files'):
            extra_files.extend(map(lambda x: x.strip(), file.split(',')))
        if self.verbosity >= 2:
            self.stdout.write("Rendering %s template files with "
                              "extensions: %s\n" %
                              (app_or_project, ', '.join(extensions)))
            self.stdout.write("Rendering %s template files with "
                              "filenames: %s\n" %
                              (app_or_project, ', '.join(extra_files)))

        base_name = '%s_name' % app_or_project
        base_subdir = '%s_template' % app_or_project
@@ -142,7 +153,7 @@ class TemplateCommand(BaseCommand):
                # accidentally render Django templates files
                with open(old_path, 'r') as template_file:
                    content = template_file.read()
                if filename.endswith(extensions):
                if filename.endswith(extensions) or filename in extra_files:
                    template = Template(content)
                    content = template.render(context)
                with open(new_path, 'w') as new_file:
+6 −3
Original line number Diff line number Diff line
@@ -115,11 +115,11 @@ name(s).
Prints the SQL statements for resetting PostgreSQL sequences for the
given app name(s).
.TP
.BI "startapp [" "\-\-template=PATH_OR_URL" "] [" "\-\-extension=EXTENSION" "] [" "appname" "] [" "destination" "]"
.BI "startapp [" "\-\-template=PATH_OR_URL" "] [" "\-\-extension=EXTENSION" "] [" "\-\-name=FILENAME" "] [" "appname" "] [" "destination" "]"
Creates a Django app directory structure for the given app name in
the current directory or the optional destination.
.TP
.BI "startproject [" "\-\-template=PATH_OR_URL" "] [" "\-\-extension=EXTENSION" "] [" "projectname" "] [" "destination" "]"
.BI "startproject [" "\-\-template=PATH_OR_URL" "] [" "\-\-extension=EXTENSION" "] [" "\-\-name=FILENAME" "] [" "projectname" "] [" "destination" "]"
Creates a Django project directory structure for the given project name
in the current directory or the optional destination.
.TP
@@ -213,9 +213,12 @@ Don't break long message lines into several lines.
.I \-a, \-\-all
Process all available locales when using makemessages..SH "ENVIRONMENT"
.TP
.I \-a, \-\-template=PATH_OR_URL
.I \-\-template=PATH_OR_URL
The file or directory path or URL to load the project and app templates from.
.TP
.I \-n, \-\-name=FILENAME
The name of an additional file to render when using app and project templates.
.TP
.I DJANGO_SETTINGS_MODULE
In the absence of the
.BI \-\-settings
+4 −2
Original line number Diff line number Diff line
@@ -951,7 +951,8 @@ creating the ``myapp`` app::

When Django copies the app template files, it also renders the files
whose extension matches those passed with the ``--extension`` option (``py``
by default) using the template engine. The :class:`template context
by default) and those files which names are passed with the ``--name`` option
using the template engine. The :class:`template context
<django.template.Context>` used is:

- Any option passed to the startapp command
@@ -1013,7 +1014,8 @@ when creating the ``myproject`` project::

When Django copies the project template files, it will also render the files
whose extension matches those passed with the ``--extension`` option (``py``
by default) using the template engine. The :class:`template context
by default) and those files which names are passed with the ``--name`` option
using the template engine. The :class:`template context
<django.template.Context>` used is:

- Any option passed to the startproject command
+1 −0
Original line number Diff line number Diff line
# some file for {{ project_name }} test project
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
# some file for {{ project_name }} test project
 No newline at end of file
Loading