Redirect / return to same (previous) page in Django?

What are the options when you want to return the user to the same page in Django and what are the pros/cons of each?

Methods I know:

  • HTTP_REFERER
  • GET parameter containing the previous URL
  • Session data to store the previous URL

Are there any other?


One of the way is using HTTP_REFERER header like as below:

from django.http import HttpResponseRedirect

def someview(request):
   ...
   return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

Not sure of cons of this!


While the question and answer is old, I think it's lacking a few options. I have not find any cons with the methods, I would be happy to know if there are any?

  • request.path_info
  • request.get_full_path()
  • request.build_absolute_uri()

    from django.shortcuts import redirect
    
    redirect(request.path_info) # No query parameters
    
    redirect(request.build_absolute_uri()) # Keeps query parameters
    
    redirect(request.get_full_path()) # Keeps query parameters