

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Analise o seguinte trecho de uma aplicação Django, que implementa caching em uma view que lista produtos de uma loja on-line. A view requer autenticação e exibe descontos personalizados por usuário. O middleware de caching está configurado corretamente.

Qual das alternativas abaixo descreve corretamente o comportamento de caching nesta implementação, considerando múltiplos usuários autenticados acessando a view simultaneamente e possíveis problemas relacionados ao caching do fragmento de template e da view?
O caching da view inteira será compartilhado entre todos os usuários autenticados, pois @vary_on_headers(‘Cookie’) não afeta o cache do fragmento de template, que é recalculado dinamicamente por requisição, garantindo que o desconto_personalizado seja único por usuário.
O decorator @cache_page será aplicado antes do @login_required, cacheando respostas de redirecionamento (HTTP 302) para usuários não autenticados, o que pode levar a loops de redirecionamento, enquanto o fragmento de template será ignorado devido ao caching da view.
O fragmento de template {% cache %} será ignorado porque a view já está cacheada com @cache_page, resultando em um cache global da página renderizada, sem variação por usuário, e o desconto_personalizado será fixo para todos os acessos até a expiração do cache da view.
A combinação de @vary_on_ headers(‘Cookie’) e @login_required garante que o cache da view seja único por usuário, mas o fragmento de template, com a chave estática produtos_lista, é cacheado globalmente, incluindo o desconto_personalizado. Isso faz com que todos os usuários vejam o mesmo desconto personalizado do primeiro usuário que gerou o cache do fragmento, até sua expiração.