2011-09-22 11 views
15

Sistema di template Django - come ottenere il valore del dizionario Python dalla chiave?Come ottenere il valore chiave nel template django?

Ho due dizionari che rappresentano dati diversi ma entrambi hanno la stessa chiave in modo che sia possibile accedere a dati diversi dalla stessa chiave.

Prima dict è:

{**'Papa, Joey C'**: {'Office Visit Est Pt Level 3 (99213)': 32, 'LAP VENTABD HERNIA 
REPAIR (49652)': 2, 'INSERT TUNNELED CV CATH (36561)': 4, 'Office Visit New Pt 
Level 2 (99202)': 4, 'PUNCTURE/CLEAR LUNG (32420)': 1, 'REPAIR SUPERFICIAL WOUND 
S (12011)': 1, 'DEBRIDE SKINTISSUE (11042)': 29, 'Office Visit New Pt Level 3 (9 
9203)': 11, 'IDENTIFY SENTINEL NODE (38792)': 2, 'MAST MOD RAD (19307)': 1, 'EXC 
FACE LES SC < 2 CM (21011)': 1, 'ACTIVE WOUND CARE20 CM OR (97597)': 4, 'RPR UM 
BIL HERN, REDUC > 5 YR (49585)': 3, 'REMOVE LESION BACK OR FLANK (21930)': 2}} 

Seconda dizionario è:

{**'Papa, Joey C'**: {'10140': 1, '10061': 1, '99214': 1, '99215': 1, '12011': 1, '97606': 1, '49080': 1, '10120': 1, '49440': 1, '49570': 1}, 'Bull, Sherman M': {'99211': 1, '99214': 1, '99215': 1, '99231': 1, '99236': 1, '12051': 1, '15004':1, '47100': 1, '15430': 1, '15431': 1}} 

Sul modello di Django, sto usando ...

{% for key1,value1 in mydict.items %} 
<br><br> 
<br><br> 
<table border="1"><tr><td>Provider Name</td><td width="70%">{{key1}}</td></tr></table> 
<br><br> 
<table class="report_by_provider"><thead><tr><th>CPT Discription</th><th>Total</th></tr></thead> 
<tbody> 
{% for key2,val2 in value1.items %} 
<tr> 
<td>{{key2}}</td> 
<td>{{val2}}</td> 
</tr> 
{% endfor %} 
</tbody> 
</table> 

<table class="report_by_provider"><thead><tr><th>CPT Code</th><th>CPT Discription</th><th>Vol</th></tr></thead> 
<tbody> 

{% for key3,val3 in mydict1.key1%} 
{% for key,val in val3.items %} 
<tr> 
<td>{{key1}}</td> 
<td>{{val}}</td> 
<td>{{val}}</td> 
</tr> 
{% endfor %} 
{% endfor %} 

Ma il secondo dizionario non stampa .

+1

Possibile duplicato: http://stackoverflow.com/questions/2970244/django-templates-value-of-dictionary-key-with-a-space-in-it – DrTyrsa

risposta

38
mydict = {'Papa, Joey C': {'10140': 1, '10061': 1, '99214': 1, '99215': 1, '12011': 1, '97606': 1, '49080': 1, '10120': 1, '49440': 1, '49570': 1}, 'Bull, Sherman M': {'99211': 1, '99214': 1, '99215': 1, '99231': 1, '99236': 1, '12051': 1, '15004':1, '47100': 1, '15430': 1, '15431': 1}} 

{% for mykey,myvalue in mydict.items %} 

    {{ mykey }} : {{ myvalue }} 

{% endfor %} 
+1

Non molto efficace se si desidera un solo elemento da un enorme ditt. – DrTyrsa

+16

Se si desidera solo 1 elemento, non si invia un dettato in primo luogo. –

+0

il tuo ** commento ** forse ha chiarito perché il mio codice era lento ... lol –

8

Dato il dizionario:

{'papa': {'name': 'Papa, Joey C', 'values': {'10140': 1, ... 

è possibile accedere ai valori delle chiavi utilizzando {{ mydict1.papa.name }}

Conoscere direttamente utilizzare la chiave nel modello se contiene gli spazi di uso o offerte speciali caratteri, è potrebbe cambiare la tua struttura (come ho appena fatto per l'esempio) o creare un custom templatetag/filter che potresti usare come {{ mydict1|get_key:"Papa, Joey C"}}.

Se vuoi un esempio completo per un filtro fammelo sapere.

+0

Ho bisogno dell'esempio completo –

Problemi correlati