Django请求查找以前的引用者

krugob8w  于 2022-12-14  发布在  Go
关注(0)|答案(4)|浏览(89)

我正在传递请求到模板页面。在django模板中如何传递初始化新页面的最后一个页面。代替history。go(-1)我需要使用这个

{{request.http referer}} ??

 <input type="button" value="Back" /> //onlcick how to call the referrer
yjghlzjz

yjghlzjz1#

这条信息位于HttpRequestMETA属性中,它是HTTP_REFERER(原文如此)键,因此我相信您应该能够在模板中访问它,如下所示:

{{ request.META.HTTP_REFERER }}

在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'
mepcadol

mepcadol2#

纳吉夫,这就是我的工作

<a href="{{ request.META.HTTP_REFERER }}">Referring Page</a>
arknldoa

arknldoa3#

这对我工作request.META.get('HTTP_REFERER')与此你不会得到一个错误,如果不存在,你会得到无代替

bqjvbblv

bqjvbblv4#

使用下面的2行代码,我可以在Django Admin中的get_queryset()中获得referer

# "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)

控制台上的输出:

http://localhost:8000/admin/store/person/ # request.headers['Referer']
http://localhost:8000/admin/store/person/ # request.META.get('HTTP_REFERER')

相关问题