2011-09-09 9 views
2

このビューは静的なページをレンダリングしていますが、ページのリファラーを捕まえることができません。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がポップしています。私は必要なものすべてをインポートしました。誰かが手掛かりを持っていますか?

答えて

7

あなたはrequest.META.get('HTTP_REFERER')を使用する必要があります。すべてのリクエストにRefererヘッダーがあるわけではありませんが、そうでない場合は、この例外を正確に取得します。 get()の結果がNoneではない場合、ヘッダーが送信されたかどうかを確認します。

2

この変更が重要なエラーを修正するようにしてください:

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