Coverage for website/members/middleware.py: 93.33%
15 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django.utils.functional import SimpleLazyObject
3from members.models import Member
6def get_member(request):
7 try:
8 return Member.objects.get(pk=request.user.pk)
9 except AttributeError:
10 return None
11 except Member.DoesNotExist:
12 return None
15class MemberMiddleware:
16 """Adds the member attribute to requests."""
18 def __init__(self, get_response):
19 self.get_response = get_response
21 def __call__(self, request):
22 # This needs to be a lazy object as Django REST Frameworks calls the
23 # the middleware before setting request.user
24 # This also avoids unnecessary queries when request.member is not used
25 request.member = SimpleLazyObject(lambda: get_member(request))
27 return self.get_response(request)