1
0
mirror of https://github.com/django/django.git synced 2025-10-25 06:36:07 +00:00

Fixed #34445 -- Fixed string-casting of non-string lazy objects.

This removes __text_cast() as it's the same as __cast().
_delegate_bytes and __delegate_text are mutually exclusive so the
`if self._delegate_bytes` branch in __cast() is unreachable.

Co-Authored-By: David Sanders <shang.xiao.sanders@gmail.com>
This commit is contained in:
Ran Benita
2019-05-03 12:58:12 +03:00
committed by Mariusz Felisiak
parent 0a132de7eb
commit 066aabcb77
2 changed files with 6 additions and 8 deletions

View File

@@ -125,9 +125,8 @@ def lazy(func, *resultclasses):
raise ValueError(
"Cannot call lazy() with both bytes and text return types."
)
if cls._delegate_text:
cls.__str__ = cls.__text_cast
elif cls._delegate_bytes:
if cls._delegate_bytes:
cls.__bytes__ = cls.__bytes_cast
@classmethod
@@ -141,17 +140,12 @@ def lazy(func, *resultclasses):
return __wrapper__
def __text_cast(self):
return func(*self.__args, **self.__kw)
def __bytes_cast(self):
return bytes(func(*self.__args, **self.__kw))
def __cast(self):
if self._delegate_bytes:
return self.__bytes_cast()
elif self._delegate_text:
return self.__text_cast()
else:
return func(*self.__args, **self.__kw)