code: def process_request(self, request):
          
          # Initialize thread local storage
          threadlocal.actionslog = {
              'signal_duid': (self.__class__, time.time()),
              'remote_ip': request.META.get('REMOTE_ADDR'),
          }
  
          # In case of proxy, set 'original' address
          if request.META.get('HTTP_X_FORWARDED_FOR'):
              threadlocal.actionslog['remote_ip'] = request.META.get('HTTP_X_FORWARDED_FOR').split(',')[0]
  
          # Connect signal for automatic logging
          if hasattr(request, 'user') and hasattr(request.user, 'is_authenticated') and request.user.is_authenticated():
              set_user = curry(self.set_user, request.user)
              pre_save.connect(set_user, sender=LogAction, dispatch_uid=threadlocal.actionslog['signal_duid'], weak=False)
docs: Gets the current user from the request and prepares and connects a signal receiver with the user already
          attached to it.