Quellcode durchsuchen

Fixed #24950 -- Added unicode_literals to models.py in app template

Thanks Tim Graham for the patch
Markus Holtermann vor 9 Jahren
Ursprung
Commit
5d42890821

+ 1 - 1
django/conf/app_template/models.py

@@ -1,3 +1,3 @@
-from django.db import models
+{{ unicode_literals }}from django.db import models
 
 # Create your models here.

+ 2 - 1
django/core/management/templates.py

@@ -14,7 +14,7 @@ import django
 from django.core.management.base import BaseCommand, CommandError
 from django.core.management.utils import handle_extensions
 from django.template import Context, Engine
-from django.utils import archive
+from django.utils import archive, six
 from django.utils.six.moves.urllib.request import urlretrieve
 from django.utils.version import get_docs_version
 
@@ -104,6 +104,7 @@ class TemplateCommand(BaseCommand):
             base_directory: top_dir,
             'docs_version': get_docs_version(),
             'django_version': django.__version__,
+            'unicode_literals': '' if six.PY3 else 'from __future__ import unicode_literals\n\n',
         }), autoescape=False)
 
         # Setup a stub settings environment for template rendering

+ 8 - 1
tests/admin_scripts/tests.py

@@ -31,7 +31,7 @@ from django.test import (
 from django.test.runner import DiscoverRunner
 from django.utils._os import npath, upath
 from django.utils.encoding import force_text
-from django.utils.six import StringIO
+from django.utils.six import PY3, StringIO
 
 test_dir = os.path.realpath(os.path.join(tempfile.gettempdir(), 'test_project'))
 if not os.path.exists(test_dir):
@@ -592,6 +592,13 @@ class DjangoAdminSettingsDirectory(AdminScriptTestCase):
         self.addCleanup(shutil.rmtree, app_path)
         self.assertNoOutput(err)
         self.assertTrue(os.path.exists(app_path))
+        if not PY3:
+            with open(os.path.join(app_path, 'models.py'), 'r') as fp:
+                content = fp.read()
+            self.assertIn(
+                "from __future__ import unicode_literals\n",
+                content,
+            )
 
     def test_setup_environ_custom_template(self):
         "directory: startapp creates the correct directory with a custom template"