Hacemos un montón de componentes de almacenamiento en caché y no todos se actualizan al mismo tiempo. Así que establecemos los valores de host y timestamp en un procesador de contexto universalmente incluido. En la parte superior de cada fragmento de plantilla nos ceñimos en:
<!-- component_name {{host}} {{timestamp}} -->
El component_name sólo hace que sea fácil de hacer una vista del origen y la búsqueda de esa cadena.
Todos nuestros puntos de vista que son páginas objeto-detalle definir una variable de contexto "page_object" y tenemos esta en la parte superior de la plantilla maestra base.html:
<!-- {{page_object.class_id}} @ {{timestamp}} -->
id_clase() es un método de una superclase utilizada por todas nuestras clases de contenido principal. Es simplemente:
def class_id(self):
"%s.%s.%s" % (self.__class__._meta.app_label,
self.__class__.__name__, self.id)
Si se carga una página y cualquiera de las marcas de tiempo son más que unos pocos segundos de edad, es una apuesta bastante buena que el componente se almacena en caché.
Solución elegante. Se puede automatizar también Gracias. – muhuk
Solo por conveniencia, ¿tiene los procesadores de contexto que mencionó en algún lugar en djangosnippets.org u otro sitio? – Matthew
¡Agregar un procesador de contexto es fácil! 1. Crea un archivo, p. my_context.py. 2. Cree una función que tome un objeto de solicitud, p. mi_contexto (solicitud). 3. Devuelve un mensaje de cosas divertidas disponible para todas las plantillas. 4. Agregue "my_context.my_context" a TEMPLATE_CONTEXT_PROCESSORS en settings.py. 5. ¡Ganar! –