2011-09-09 65 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))
它不斷彈出KeyError在/'HTTP_REFERER'。我輸入了所需的一切。有人有線索嗎?

回答

7

您應該使用request.META.get('HTTP_REFERER')。並非每個請求都會有一個Referer標題,如果沒有,您會得到這個例外。測試get()的結果是否不是None以查看頭是否已發送。

2

進行此更改修復關鍵錯誤:

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