/ / Cache de fragmento do Django na página de layout digitada pela url da página - django

Cache de fragmentos do Django na página de layout digitado por url de página - django

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 № 1

Primeiro 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.