scieloorg/SciELO-Manager — pull request #422 by gustavofonseca (2013-02-22 00:21:51+00:00)
Title: Otimização do total de queries realizadas por context_processors

Ao encapsular as queries em funções, obtivemos uma redução de 26% do total de queries realizadas ao banco de dados.

Este pulo-do-gato é possível por conta da semântica da linguagem de templates do Django, que quando encontra algo como {{ var_a }}, ele tenta acessar e executar caso seja um callable. Desta maneira, ao encapsular as queries em funções nós garantimos que sejam disparadas apenas qdo forem invocadas no template, e não quando o context_processor for executado.