docs: def add_login_attempt_to_db(request, login_valid,
                              get_username=get_username_from_request,
                              username=None):
      """ Create a record for the login attempt If using celery call celery
      task, if not, call the method normally """
  
      if not config.STORE_ACCESS_ATTEMPTS:
          # If we don't want to store in the database, then don't proceed.
          return
  
      username = username or get_username(request)
  
      user_agent = request.META.get('HTTP_USER_AGENT', '<unknown>')[:255]
      ip_address = get_ip(request)
      http_accept = request.META.get('HTTP_ACCEPT', '<unknown>')
      path_info = request.META.get('PATH_INFO', '<unknown>')
  
      if config.USE_CELERY:
          from .tasks import add_login_attempt_task
          add_login_attempt_task.delay(user_agent, ip_address, username,
                                       http_accept, path_info, login_valid)
      else:
          store_login_attempt(user_agent, ip_address, username,
                              http_accept, path_info, login_valid)