﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
18091	Non-ASCII templates break `django-admin.py startproject --template=TEMPLATE`	Antti Kaihola	nobody	"If a file in a project template for `manage.py startproject --template=TEMPLATE`
* has non-ASCII characters in its contents, and
* is named with one of the extensions given in the `--extension=` argument,
a !UnicodeDecodeError is raised:
{{{
$ django-admin.py startproject --template=mytemplate myproject
Traceback (most recent call last):
  File ""/django/django/bin/django-admin.py"", line 5, in <module>
    management.execute_from_command_line()
  File ""django/core/management/__init__.py"", line 442, in execute_from_command_line
    utility.execute()
  File ""django/core/management/__init__.py"", line 381, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File ""django/core/management/base.py"", line 195, in run_from_argv
    self.execute(*args, **options.__dict__)
  File ""django/core/management/base.py"", line 231, in execute
    output = self.handle(*args, **options)
  File ""django/core/management/commands/startproject.py"", line 31, in handle
    super(Command, self).handle('project', project_name, target, **options)
  File ""django/core/management/templates.py"", line 161, in handle
    new_file.write(content.encode('UTF-8'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 113: ordinal not in range(128)
}}}

The content of the template file is read from the disk as a bytestring (line 156) and run through the Django template engine, which outputs the rendered text as a Unicode object (line 159). The Unicode object is then attempted to be written in to a file without encoding it first (line 161).

Files whose extension '''isn't''' included in `--extension=` are read from the disk, '''not''' run through the template engine and written back to the destination without any decoding or encoding. For this reason, those files are handled without problems even if they have non-ASCII content."	Bug	closed	Core (Management commands)	dev	Normal	fixed		Clo74 Florian Apolloner tomas.ehrlich@…	Accepted	1	0	0	0	0	0
