In our case that means 100k+ requests every day =)
What do you think about this workaround? I've tested it locally.
def process_request(self, request):
_usr = request.user # save as local var to prevent infinite recursion
_usr.is_impersonate = False
request.user = SimpleLazyObject(_get_usr)
request.impersonator = None
if '_impersonate' in request.session and request.user.is_authenticated: