2009-06-19 9 views
8

Datostringa vuota in HTML risultato reso da Django/Python

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

in un file "urls.py".

Questo funziona come previsto:

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

Perché non funziona con il seguente? (Il risultato di "{{}} siteInfo.appname3" in homepage.html diventa vuoto Fai):

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

funzionerebbe se "siteInfo.appname3" è stato cambiato in qualcosa d'altro?

+1

Perché tutte queste backslash? –

risposta

11

Utilizzare {{ appname3 }} anziché {{siteInfo.appname3}}.

Poiché le coppie chiave-valore {{appname3}} possono essere direttamente accessibili nel modello, anziché accessibili tramite {{ siteInfo.key }}.

Nel primo esempio, si sta creando un dict da passare in extra_context, con la chiave siteInfo, e il valore è il dictsiteInfo. Nel secondo, stai passando lo dictsiteInfo direttamente.