Използвам Memcached (с питон-Memcached обвързване) с един от джанговите ми проекти. Сценарият е, че на началната страница имам:
- Топ бар: (Това съдържа връзките за влизане / Потребителско име с връзка към потребителския профил)
- Форма за търсене
- Малко блокове от резултати
В момента използвам cache_page()
декоратор, за да кешира цялата страница, както следва:
@cache_page(3600)
def home(request):
# View Code Goes Here
и горното работи както се очаква. Но тъй като началната страница е публично достъпна страница, имам проблем с един сценарий, където:
- Анонимен потребител заявява началната страница (страницата се кешира, ако е вече не е).
- Сега потребителят влиза в системата и се пренасочва към началната страница.
- Кешираната начална страница се зарежда (в горната лента все още се показва връзка за вход, вместо влезлият потребител и име на профил, тъй като страницата е кеширана преди потребителят да влезе.)
Въпрос:
Има ли начин или на ниво шаблон, или на ниво изглед, който ни позволява да определим блок ние НЕДЕЙ искате да кеширате, докато използвате cache_page()
декоратор?
Моля, обърнете внимание: знам, че можем да използваме {% cache %}
шаблон маркер или cache.set
за всеки блок в горния сценарий. Но аз специално търся решение, където можем да използваме cache_page()
декоратор и все още ще можете да посочите a block
че не искам кеширана в определен изглед или шаблон
Отговори:
0 за отговор № 1употреба CACHE_MIDDLEWARE_ANONYMOUS_ONLY
все пак звучи като опция за междинен софтуер, влияе и на @cache_page