2015-08-21 28 views
0

我試圖緩存頁面url和用戶ID 在佈局頁面(base.html)中的一切,這個想法是URL更改,獲取正確的頁面html頁面,如果用戶登錄,緩存由用戶Django片段緩存在佈局頁面中鍵入頁面url

現在,下面緩存的第一頁,如果我點擊菜單中的網址,url的變化,但返回的HTML是從第一頁加載

我如何打破緩存?

{% cache 300 request.build_absolute_uri request.user %} 
<html> 
{% block content %} {% endblock %} 
</html> 
{% endcache %} 

回答

0

首先,您需要在頂部有{% load cached %},否則這將不起作用。

緩存模板標記的第一個參數是超時值,第二個參數是名稱。因此,您的代碼需要更改如下:

{% cache 300 FULL_PAGE request.build_absolute_uri request.user %} 

這將解決您遇到的問題。不過,請允許我試圖說服你不要使用這種緩存策略。如果你有1000個用戶,每個用戶訪問5個頁面,每個頁面都是10kb,那麼你使用了5MB的緩存。而且緩存中的這些對象的壽命很短,所以攪動將成爲當天的順序。