Fixed #18463 -- Forced type() argument to be a byte string
This commit is contained in:
parent
c4c7fbcc0d
commit
3dd5d726d1
|
@ -5,6 +5,7 @@ Factored out from django.db.models.query to avoid making the main module very
|
||||||
large and/or so that they can be used by other modules without getting into
|
large and/or so that they can be used by other modules without getting into
|
||||||
circular import difficulties.
|
circular import difficulties.
|
||||||
"""
|
"""
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django.db.backends import util
|
from django.db.backends import util
|
||||||
from django.utils import tree
|
from django.utils import tree
|
||||||
|
@ -177,7 +178,7 @@ def deferred_class_factory(model, attrs):
|
||||||
overrides["Meta"] = Meta
|
overrides["Meta"] = Meta
|
||||||
overrides["__module__"] = model.__module__
|
overrides["__module__"] = model.__module__
|
||||||
overrides["_deferred"] = True
|
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
|
# The above function is also used to unpickle model instances with deferred
|
||||||
# fields.
|
# fields.
|
||||||
|
|
|
@ -174,3 +174,10 @@ class DeferRegressionTest(TestCase):
|
||||||
qs = ResolveThis.objects.defer('num')
|
qs = ResolveThis.objects.defer('num')
|
||||||
self.assertEqual(1, qs.count())
|
self.assertEqual(1, qs.count())
|
||||||
self.assertEqual('Foobar', qs[0].name)
|
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')
|
||||||
|
|
Loading…
Reference in New Issue