我使用允許用戶瀏覽其網站內容的其他人的API來構建應用程序。用戶可以使用其他站點的憑證登錄我的項目,以便從他們的站點「收藏」內容。在Django中使用緩存頁面的會話變量
當他們登錄時,我得到了一個user_token。爲了避免爲他們創造一個用戶文件,我只是此令牌保存爲一個會話變量:
# Set session
request.session.set_expiry(60 * 60)
# Save token in session
request.session['user_token'] = unicode(auth.Message)
我還使用文件緩存從網站內容:
CACHE_BACKEND =「文件:///..../cache/」
而且使用某些意見前@cache_page命令來緩存數據:
@cache_page(CACHE_TIME)
def listings_by_cat_page(request, category_id):
# view stuff here
當我遇到的問題是當用戶的意見Ť他主屏幕(它被緩存),點擊登錄,登錄,然後返回到主屏幕,登錄/註銷按鈕不知道切換。我假設這是因爲它是一個緩存頁面,它看不到user_token會話變量。
{% if not request.session.user_token %}
<a href="/login{% comment %}?next={{ request.path }}{% endcomment %}" class="login">Login</a>
{% else %}
<a href="/logout/" class="login">Logout</a>
{% endif %}
理想情況下,我想緩存內容,但讓頁面識別request.session變量中的更改。
任何想法?