Estou tentando armazenar em cache tudo por URL da página e ID de usuário em uma página de layout (base.html), a ideia é as mudanças de url, obter o html correto da página para essa página e, se o usuário entrar, cache por usuário
Neste momento, o seguinte armazena em cache a primeira página, e se eu clicar em uma url no menu, a url muda, mas o html retornado é da primeira página carregada
Como faço para quebrar o cache?
{% cache 300 request.build_absolute_uri request.user %}
<html>
{% block content %} {% endblock %}
</html>
{% endcache %}
Respostas:
0 para resposta № 1Primeiro de tudo você precisa ter {% load cached %}
bem no topo ou isso não funcionará.
O primeiro parâmetro para a tag do modelo de cache é o tempo limite e o segundo é o nome. Portanto, seu código precisa ser alterado da seguinte maneira:
{% cache 300 FULL_PAGE request.build_absolute_uri request.user %}
Isso resolverá o problema que você encontrou.No entanto, permita-me tentar persuadi-lo a não usar essa estratégia de cache. Se você tem 1000 usuários e cada um deles visita 5 páginas e cada página tem 10kb, você está usando 5 MB do seu cache. E esses objetos no cache têm uma vida útil muito curta, então a agitação estará na ordem do dia.