我有这个视图渲染一个静态页面,但我似乎无法抓住页面的引用者
def landing(request, referer='google'): ''' Loads the landing page ''' msg = '' if request.method == 'GET': referer = request.META['HTTP_REFERER'] return render_to_response('index.html', {'WSGI_DIR': settings.WSGI_DIR,'csrf_value': get_token(request), 'referer':referer},context_instance=RequestContext(request))它一直在/'HTTP_REFERER'弹出KeyError。我已经导入了所需的一切。有没有人有线索?
答案 0 :(得分:7)
您应该使用request.META.get('HTTP_REFERER')
。并非每个请求都有一个Referer
标头,如果没有,您将获得此异常。测试get()
的结果是否不是None
以查看标头是否已发送。
答案 1 :(得分:2)
进行此更改以修复密钥错误:
referer = request.META.get('HTTP_REFERER', '')