1 from django
.core
.exceptions
import MultipleObjectsReturned
2 from chercheurs
.models
import Personne
, Chercheur
4 class LazyChercheur(object):
6 def __get__(self
, request
, obj_type
=None):
7 if not hasattr(request
, '_cached_chercheur'):
8 request
._cached_chercheur
= None
9 if request
.user
.is_authenticated():
11 request
._cached_chercheur
= Chercheur
.objects
.get(actif
=True, courriel
=request
.user
.email
)
12 except (Personne
.DoesNotExist
, Chercheur
.DoesNotExist
, MultipleObjectsReturned
):
14 return request
._cached_chercheur
16 class ChercheurMiddleware(object):
18 def process_request(self
, request
):
19 request
.__class__
.chercheur
= LazyChercheur()