summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2012-12-03 10:37:26 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2012-12-03 10:45:42 +0100
commitc9a47fb379cab4c0fe9be27c9924236e75327bd0 (patch)
tree0802f879e804799322d0115a94d87287b5d4b28d
parent1b93499849f497af405de113355681e3af68d50b (diff)
[1.5.x] Fixed #19397 -- Crash on binary files in project templates.
Thanks gw 2012 at tnode com for the report. Backport of baae4b8.
-rw-r--r--django/core/management/templates.py8
-rw-r--r--tests/regressiontests/admin_scripts/custom_templates/project_template/ticket-19397-binary-file.icobin0 -> 894 bytes
2 files changed, 4 insertions, 4 deletions
diff --git a/django/core/management/templates.py b/django/core/management/templates.py
index d34a0deb7e..f522097b8c 100644
--- a/django/core/management/templates.py
+++ b/django/core/management/templates.py
@@ -8,8 +8,6 @@ import shutil
import stat
import sys
import tempfile
-import codecs
-
try:
from urllib.request import urlretrieve
except ImportError: # Python 2
@@ -156,12 +154,14 @@ class TemplateCommand(BaseCommand):
# Only render the Python files, as we don't want to
# accidentally render Django templates files
- with codecs.open(old_path, 'r', 'utf-8') as template_file:
+ with open(old_path, 'rb') as template_file:
content = template_file.read()
if filename.endswith(extensions) or filename in extra_files:
+ content = content.decode('utf-8')
template = Template(content)
content = template.render(context)
- with codecs.open(new_path, 'w', 'utf-8') as new_file:
+ content = content.encode('utf-8')
+ with open(new_path, 'wb') as new_file:
new_file.write(content)
if self.verbosity >= 2:
diff --git a/tests/regressiontests/admin_scripts/custom_templates/project_template/ticket-19397-binary-file.ico b/tests/regressiontests/admin_scripts/custom_templates/project_template/ticket-19397-binary-file.ico
new file mode 100644
index 0000000000..1db49645b5
--- /dev/null
+++ b/tests/regressiontests/admin_scripts/custom_templates/project_template/ticket-19397-binary-file.ico
Binary files differ