From b2ed0d78f2dff9986ef15b9098c1b6d9ce720a99 Mon Sep 17 00:00:00 2001 From: Matthias Kestenholz Date: Thu, 17 Feb 2022 09:45:34 +0100 Subject: Refs #28358 -- Fixed infinite recursion in LazyObject.__getattribute__(). Regression in 97d7990abde3fe4b525ae83958fd0b52d6a1d13f. Co-authored-by: Mariusz Felisiak Co-authored-by: Theo Alexiou --- django/utils/functional.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'django/utils') diff --git a/django/utils/functional.py b/django/utils/functional.py index 8dd8a8e006..5827389231 100644 --- a/django/utils/functional.py +++ b/django/utils/functional.py @@ -288,6 +288,9 @@ class LazyObject: self._wrapped = empty def __getattribute__(self, name): + if name == "_wrapped": + # Avoid recursion when getting wrapped object. + return super().__getattribute__(name) value = super().__getattribute__(name) # If attribute is a proxy method, raise an AttributeError to call # __getattr__() and use the wrapped object method. -- cgit v1.3