Skip to content

Commit d1209a6

Browse files
committed
Add try/except for user.get_profile
1 parent 5e7264f commit d1209a6

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

cached_auth/__init__.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,23 @@
1818
CACHE_KEY = 'cached_auth_middleware:%s'
1919

2020

21+
try:
22+
app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
23+
profile_model = models.get_model(app_label, model_name)
24+
except (ValueError, AttributeError):
25+
profile_model = None
26+
27+
2128
def profile_preprocessor(user, request):
2229
""" Cache user profile """
23-
return user.get_profile()
30+
if profile_model:
31+
try:
32+
user.get_profile()
33+
# Handle exception for user with no profile and AnonymousUser
34+
except (profile_model.DoesNotExist, AttributeError):
35+
pass
36+
return user
37+
2438

2539
user_preprocessor = None
2640
if hasattr(settings, 'CACHED_AUTH_PREPROCESSOR'):
@@ -34,12 +48,6 @@ def profile_preprocessor(user, request):
3448
else:
3549
user_preprocessor = profile_preprocessor
3650

37-
try:
38-
app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
39-
profile_model = models.get_model(app_label, model_name)
40-
except (ValueError, AttributeError):
41-
profile_model = None
42-
4351

4452
def invalidate_cache(sender, instance, **kwargs):
4553
if isinstance(instance, User):

0 commit comments

Comments
 (0)