2010-07-27 22 views

Respuesta

12

El procesador de plantillas Django no procesa el Javascript incluido en el servidor, por lo que no funcionará. Si necesita pasar información a través de la plantilla a los archivos Javascript incluidos, haga que su plantilla cree un pequeño bloque <script> en el que se declare que alguna variable global contiene esas variables de plantilla. Entonces, su archivo JavaScript puro puede obtener los valores buscando el objeto global creado por ese <script> desde la plantilla.

+0

Esto funcionó gr8 ... gracias! – Cool

5

La respuesta de Pointy es correcta. A menudo me encuentro este filtro útil para esa situación:

@register.filter(name='json') 
def _json(obj): 
    #remember to make sure the contents are actually safe before you use this filter! 
    return safestring.mark_safe(json.dumps(obj)) 

entonces en una etiqueta <script> que sólo puede hacer algo como esto:

window.g_details = {{ details|json }}; 
+0

Usaré esto una vez que implemente JSON en mi código js. Gracias – Cool

+0

@JasonPrado: ¿Por qué debería uno hacer esto? – Medorator

+0

Esta respuesta tiene 4 años, así que apuesto a que django tiene una mejor solución por ahora. Pero mi idea aquí fue que es bueno poder convertir un diccionario de Python en un diccionario JSON de forma segura y fácil. –

Cuestiones relacionadas