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