diff --git a/django/utils/functional.py b/django/utils/functional.py index 666651bd2e..2771851eae 100644 --- a/django/utils/functional.py +++ b/django/utils/functional.py @@ -144,10 +144,7 @@ def lazy(func, *resultclasses): return bytes(func(*self.__args, **self.__kw)) def __cast(self): - if self._delegate_bytes: - return self.__bytes_cast() - else: - return func(*self.__args, **self.__kw) + return func(*self.__args, **self.__kw) def __str__(self): # object defines __str__(), so __prepare_class__() won't overload diff --git a/tests/utils_tests/test_functional.py b/tests/utils_tests/test_functional.py index f8763b3db6..cc4409d893 100644 --- a/tests/utils_tests/test_functional.py +++ b/tests/utils_tests/test_functional.py @@ -242,6 +242,10 @@ class FunctionalTests(SimpleTestCase): lazy_value = lazy(lambda: [1], str, list)() self.assertEqual(str(lazy_value), "[1]") + def test_lazy_str_cast_mixed_bytes_result_types(self): + lazy_value = lazy(lambda: [1], bytes, list)() + self.assertEqual(str(lazy_value), "[1]") + def test_classproperty_getter(self): class Foo: foo_attr = 123