Как повторно использовать переменную for в django

#html #django #django-templates

#HTML #джанго #django-шаблоны

Вопрос:

Я пытаюсь отобразить свой df в таблице в своем веб-приложении (без использования .tohtml, потому что мне нужна динамическая таблица). Кажется, что я не могу использовать переменную ключа / столбца из моего цикла :

 <table id='bdd_table'>
    <thead>
        <tr>
            {% for header in BDD_Data %}
            <th> {{header}} </th>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
    {%  for key in BDD_Data_size %}
        <tr>
            {% for column in BDD_Data %}
            <td> {{BDD_Data[column][key]}} </td>
            {% endfor %}    
        </tr>
    {% endfor %}

    </tbody>
</table>                        
 

Моя ошибка:
ошибка

Я думаю, что у меня есть какие-то проблемы с моими данными, потому что, если я пишу {{column}} / {{key}} вместо {{BDD_Data[column][key]}} этого, отображаются все значения из моего фрейма данных.

Комментарии:

1. Это BDD_Data список или dict?

2. @arulmr это фрейм данных

3. Я раньше не использовал фрейм данных в шаблонах Django. Вы можете попробовать преобразовать фрейм данных в Dict и передать его в шаблон. Это может сработать.

4. Спасибо вам за вашу помощь. Если я не найду никакого решения, я пойду за словарями, но я предпочитаю оставаться с dataframe, который действительно мощный и простой для работы с данными.

Ответ №1:

Хитрость заключалась в использовании mydataframe.values :

 <table id='bdd_table'>
    <thead>
        <tr>
            {% for header in BDD_Data %}
            <th> {{header}} </th>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
    {%  for value in BDD_Data.values %}
        <tr>
            {% for cell in value %}
            <td> {{cell}} </td>
            {% endfor %}    
        </tr>
    {% endfor %}

    </tbody>
</table>