2012-06-07 14 views
5

Tengo una plantilla que incluye muchos anidados en los bucles. Tenemos diferentes partes de páginas divididas en archivos de plantilla separados porque los reutilizamos uniéndolos de diferentes maneras para diferentes vistas.Plantillas de Django: la anidación incluye en los bucles

Por ejemplo: {% para usuario en usuarios%} {% incluir "userDetail.html" %} {% endfor%}

Tenemos algunas 40k registros en la base de datos. Identifiqué el problema en el sistema de plantillas. render_to_response toma alrededor de 11 segundos para ejecutarse. Pensé que quizás Django no estaba almacenando en caché las plantillas, así que tal vez era un problema de E/S.

Alineé una de nuestras plantillas, por lo que no incluye nada, y se redujo en 5 segundos. Pero esto no es muy útil en nuestra situación en la que reutilizamos mucho el código de la plantilla.

¿Alguien sabe la solución a este problema? ¿O alguien tiene alguna otra idea de por qué render_to_response tomaría tanto tiempo?

[edit] Debo mencionar que habilité el cargador de plantillas de caché de Django, y solo guardó alrededor de 1 segundo. Aplanar la plantilla fue significativamente más rápido.

+0

¿Tienen el bucle en el código Python en lugar de la plantilla. Debería ser un poco más rápido. – Blender

Respuesta

0

Pruebe Jinja2, es ~ 10 veces más rápido que la biblioteca de plantillas de Django, por lo que he leído.