Reputation: 46949
I'm passing the request to the template page.In django template how to pass the last page from which the new page was initialised.Instead of history.go(-1) i need to use this
{{request.http referer}} ??
<input type="button" value="Back" /> //onlcick how to call the referrer
Upvotes: 79
Views: 82662
Reputation: 1
With 2 lines of code below, I could get referer in overridden get_queryset()
in Django Admin:
# "store/admin.py"
from django.contrib import admin
from .models import Person
@admin.register(Person)
class PersonAdmin(admin.ModelAdmin):
def get_queryset(self, request):
print(request.META.get('HTTP_REFERER')) # Here
print(request.headers['Referer']) # Here
return super().get_queryset(request)
Output on console:
http://localhost:8000/admin/store/person/ # request.headers['Referer']
http://localhost:8000/admin/store/person/ # request.META.get('HTTP_REFERER')
Upvotes: 2
Reputation: 351
This worked for me request.META.get('HTTP_REFERER')
With this you won't get an error if doesn't exist, you will get None instead
Upvotes: 12
Reputation: 14080
Rajeev, this is what I do:
<a href="{{ request.META.HTTP_REFERER }}">Referring Page</a>
Upvotes: 26
Reputation: 56408
That piece of information is in the META
attribute of the HttpRequest
, and it's the HTTP_REFERER
(sic) key, so I believe you should be able to access it in the template as:
{{ request.META.HTTP_REFERER }}
Works in the shell:
>>> from django.template import *
>>> t = Template("{{ request.META.HTTP_REFERER }}")
>>> from django.http import HttpRequest
>>> req = HttpRequest()
>>> req.META
{}
>>> req.META['HTTP_REFERER'] = 'google.com'
>>> c = Context({'request': req})
>>> t.render(c)
u'google.com'
Upvotes: 158