Skip to content

Commit 4289dd5

Browse files
Merge pull request #287 from jacobfelknor/djangoq2_pickling_recursion_error
Prevent Recursion Errors with django_q2 Tasks
2 parents fe7cc4e + b477db0 commit 4289dd5

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

inventree/base.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -352,11 +352,17 @@ def __contains__(self, name):
352352
return name in self._data
353353

354354
def __getattr__(self, name):
355+
try:
356+
data = object.__getattribute__(self, "_data")
357+
except AttributeError:
358+
# Appears to happen during pickling. Raise immediately to prevent recursion errors
359+
raise AttributeError(name)
355360

356-
if name in self._data.keys():
357-
return self._data[name]
358-
else:
359-
return super().__getattribute__(name)
361+
if name in data:
362+
return data[name]
363+
364+
# if we're in this block, there already wasn't a "normal" attribute with this name. Raise
365+
raise AttributeError(name)
360366

361367
def __getitem__(self, name):
362368
if name in self._data.keys():

0 commit comments

Comments
 (0)