Django request to find previous referrer
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=&quo开发者_运维百科t;Back" /> //onlcick how to call the referrer
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'
Rajeev, this is what I do:
<a href="{{ request.META.HTTP_REFERER }}">Referring Page</a>
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
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')
精彩评论