views:

305

answers:

1

How can I print the columns specified in "fields_i_want" instead of hardcoding the column names in the template code?

# Let's say I have this in my view:
foo = Foo.objects.filter(some_field='bar').select('field1', 'field2', 'field3')
fields_i_want = ['field1', 'field2']

# Then in the template I want to do something like this:
<TABLE id="some_id">    
    <TBODY>
        {% for row in some_var.foo %}
        <tr>
         {% for value in another_var.fields_i_want %}
            <td>{{ row[value] }}</td>
         {% endfor %}
        </tr>
        {% endfor %}
    </TBODY>
</TABLE>

# Instead of doing this:
<TABLE id="some_id">    
    <TBODY>
        {% for row in some_var.foo %}
        <tr>
            <td>{{ row.field1 }}</td>
            <td>{{ row.field2 }}</td>
        </tr>
        {% endfor %}
    </TBODY>
</TABLE>
A: 

See this SO question.

PiotrLegnica
THANK YOU!! That was exactly what I was looking for :)
orwellian