2016-11-19 68 views
1

我有一個頁面叫'results.html'用戶可以從中提交表單。問題是有時候我會提交表單,並且響應是從緩存中獲取的,而其他時候它實際上會在views.py中調用響應方法。這裏有一個例子:Django緩存請求無論設置

用戶提交「模仿遊戲」:正確的響應返回給用戶,並在我的意見響應函數打印

[19/Nov/2016 00:50:21] "POST /results/ HTTP/1.1" 200 2414 
Response function called!! 
Search term: The Imitation Game` 

到控制檯。但是,如果用戶搜索此再次(或其他任何搜索詞,他/她找遍了過去),這是響應:

[19/Nov/2016 00:51:05] "GET /get_data?query=The%20Imitation%20Game HTTP/1.1" 200 18858 

很明顯的反應方法沒有被調用。這在前端也是非常明顯的,因爲過時的數據會在後續請求中返回給用戶。

這裏踢球是我使用的是虛擬緩存:

# Use dummy cache for development and testing 
CACHES = { 
    'default': { 
     'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 
    }, 
    'deployment': { 
     'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 
    } 
} 

DEBUG = True。我也正在標記響應方法如下:

@never_cache 
def results(request): 

我清除了我的瀏覽器緩存,所以也不是這樣。我很驚訝這是完全可能的。任何幫助將非常感激。

+0

你可以嘗試在瀏覽器中禁用緩存嗎? - http://stackoverflow.com/a/7000899/3930114 我認爲這是瀏覽器端的問題。您還可以在網絡部分查看哪些查詢發送到您的django服務器作爲附加確認。 – Aditya

回答

0

事實證明,我沒有正確清除Chrome瀏覽器中的瀏覽器歷史記錄。當我「清除」它時,我忘記選擇「清除緩存的文件和圖像」。清除那些解決了問題(我的代碼沒有錯)。