Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Present data from python dictionary to django template.?

I have a dictionary

data = {'sok': [ [1, 10] ], 'sao': [ [1, 10] ],'sok&sao':[ [2,20]] }

How Can I (Loop trough Dictionary ) present My data as (HTML) table to Django template.?? This format that as table

 author       qty            Amount
 sok            1              10         
 sao            1              10         
 sok&sao        2              20
 total               
like image 867
kn3l Avatar asked Oct 09 '09 04:10

kn3l


2 Answers

You can use the dict.items() method to get the dictionary elements:

<table>
    <tr>
        <td>author</td>
        <td>qty</td>
        <td>Amount</td>
    </tr>

    {% for author, values in data.items %}
    <tr>
        <td>{{author}}</td>
        {% for v in values.0 %}
        <td>{{v}}</td>
        {% endfor %}
    </tr>
    {% endfor %}
</table>
like image 198
notnoop Avatar answered Oct 06 '22 16:10

notnoop


Unfortunately, django templates do not deal with Python tuples. So it is not legal to use "for author, values" in the template. Instead, you must access tuple or array values by their index by using ".index", as in "tuple.0" and "tuple.1".

<table>
    <tr>
        <td>author</td>
        <td>qty</td>
        <td>Amount</td>
    </tr>

    {% for entry in data.items %}
    <tr>
        <td>{{entry.0}}</td>
        {% for v in entry.1 %}
        <td>{{v}}</td>
        {% endfor %}
    </tr>
    {% endfor %}
</table>
like image 34
Brian H Avatar answered Oct 06 '22 17:10

Brian H