Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #18463 -- Forced type() argument to be a byte string

  • Loading branch information...
commit 3dd5d726d1c3bf8f5901c992d7586e5ec146bc2d 1 parent c4c7fbc
@claudep claudep authored
View
3  django/db/models/query_utils.py
@@ -5,6 +5,7 @@
large and/or so that they can be used by other modules without getting into
circular import difficulties.
"""
+from __future__ import unicode_literals
from django.db.backends import util
from django.utils import tree
@@ -177,7 +178,7 @@ class Meta:
overrides["Meta"] = Meta
overrides["__module__"] = model.__module__
overrides["_deferred"] = True
- return type(name, (model,), overrides)
+ return type(str(name), (model,), overrides)
# The above function is also used to unpickle model instances with deferred
# fields.
View
7 tests/regressiontests/defer_regress/tests.py
@@ -174,3 +174,10 @@ def test_resolve_columns(self):
qs = ResolveThis.objects.defer('num')
self.assertEqual(1, qs.count())
self.assertEqual('Foobar', qs[0].name)
+
+ def test_deferred_class_factory(self):
+ from django.db.models.query_utils import deferred_class_factory
+ new_class = deferred_class_factory(Item,
+ ('this_is_some_very_long_attribute_name_so_modelname_truncation_is_triggered',))
+ self.assertEqual(new_class.__name__,
+ 'Item_Deferred_this_is_some_very_long_attribute_nac34b1f495507dad6b02e2cb235c875e')

0 comments on commit 3dd5d72

Please sign in to comment.
Something went wrong with that request. Please try again.