32

Django template system - how to get python dictionary value from key?

I have two dictionaries which represent different data but both have same key so that I am able to access different data from the same key.

First dict is:

{**'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}}

Second dictionary is:

 {**'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}} 

On django template, I am using...

{% 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 %}

But the second dictionary is not printing.

deltree
  • 3,756
  • 1
  • 30
  • 51
Madhur Rampal
  • 321
  • 1
  • 3
  • 3
  • 1
    Possible duplicate: http://stackoverflow.com/questions/2970244/django-templates-value-of-dictionary-key-with-a-space-in-it – DrTyrsa Sep 22 '11 at 08:02

3 Answers3

67
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 %}
lprsd
  • 84,407
  • 47
  • 135
  • 168
12

Given the dictionary:

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

you can access the values from the keys using {{ mydict1.papa.name }}

Knowing directly use the key in the template if it contains use spaces or specials chars, you could either change your structure (like i just did for the example) or create a custom templatetag/filter which you could use like {{ mydict1|get_key:"Papa, Joey C"}}.

If you want a complete example for a filter just let me know.

Gaikokujin Kun
  • 399
  • 2
  • 5
1

dic_1 is a dictionary. i need the key and value.

we can do loop and get the key and value like this.

{% for key, value in dic_1.items %}
{{key}}
{{value}}
{% endfor %}