2009-06-19 22 views
8

Dadocadena vacía en resultado renderizado HTML de Django/Python

siteInfo = \ 
{ 
    'appname3': 'MSQuantDynamics11', 
    'siteBase': 'http://www.pil.sdu.dk/1', 
} 

en un archivo "urls.py".

Esto funciona como se esperaba:

urlpatterns = patterns('', 
    (r'^$', direct_to_template,       \ 
     {             \ 
     'template'  : "homepage.html",    \ 
     'extra_context': { 'siteInfo': siteInfo },  \ 
     } 
    ), 
) 

¿Por qué no funciona con la siguiente? (El resultado de "{{}} siteInfo.appname3" en homepage.html convierte emtpy):

urlpatterns = patterns('', 
    (r'^$', direct_to_template,       \ 
     {             \ 
     'template'  : "homepage.html",    \ 
     'extra_context': siteInfo,      \ 
     } 
    ), 
) 

¿funcionaría si "siteInfo.appname3" fue cambiado a otra cosa?

+1

¿Por qué todos estos backslashes? –

Respuesta

11

Use {{ appname3 }} en lugar de {{siteInfo.appname3}}.

Debido a que los pares clave-valor {{appname3}} pueden ser accesibles directamente en la plantilla, en lugar de ser accesibles a través de {{ siteInfo.key }}.

En el primer ejemplo, va a crear un diccionario que se pasa en extra_context, con la llave siteInfo, y el valor de ser el dictsiteInfo. En el segundo, está pasando el dictsiteInfo directamente.

Cuestiones relacionadas