2012-09-15 54 views
0

我在我的應用程序中使用了django 1.3。我需要組織緩存,它滿足以下規則:在視圖中,我想緩存 將緩存頁面交付給匿名用戶和非緩存至授權

  • 每個非授權的(匿名)用戶可以看到緩存使用@cache_page裝飾使用的memcached作爲緩存後端
    1. 版本 (因此django應該提供緩存版本的頁面);
    2. 對於每個授權用戶,django應生成新版本的頁面 (非緩存)並將其傳遞。

    我該怎麼辦?我嘗試使用視圖下方兩個修飾:

    @cache_page(108000) 
    @vary_on_cookie 
    

    ,但是當我登錄,我首先看到了新的數據,當(通過使用phpMyAdmin直接在數據庫中)在更新數據後,我刷新頁面,看看以前的內容版。

  • 回答

    1
    +0

    這種方法有一個「 - 」:如果我使用這個選項=真,比匿名用戶緩存的網頁,並授權用戶不會被緩存。但爲匿名顯示的高速緩存爲授權顯示(所以,它不是爲授權生成,但顯示)。我希望授權用戶總是收到實際(不緩存)的數據。 – dizpers

    +0

    你確定嗎?你必須記住它是每個站點緩存,由中間件完成,你必須刪除每個視圖緩存裝飾器來處理它。 – jasisz