HTTP referer问题

时间:2011-09-09 15:34:11

标签: python django http

我有这个视图渲染一个静态页面,但我似乎无法抓住页面的引用者

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。我已经导入了所需的一切。有没有人有线索?

2 个答案:

答案 0 :(得分:7)

您应该使用request.META.get('HTTP_REFERER')。并非每个请求都有一个Referer标头,如果没有,您将获得此异常。测试get()的结果是否不是None以查看标头是否已发送。

答案 1 :(得分:2)

进行此更改以修复密钥错误:

referer = request.META.get('HTTP_REFERER', '')