Как распечатать только определенные ячейки моей таблицы в Django шаблонах? - PullRequest
1 голос
/ 23 января 2020

Я разрабатываю приложение в Django.

У меня есть шаблон ( код 0 ):

{% for row in query_result %}

    <tr>
    {% for cell in row %}

        <td>{{ cell }}</td>

    {% endfor %} 
    </tr>

{% endfor %}

Предположим, мне нужен мой шаблон чтобы напечатать только первый и третий столбцы моей матрицы, как я могу указать своему шаблону конкретную c ячейку?

Я пробовал с

{% for row in query_result %}

    <tr>


        <td >{{ cell[0] }}</td>
        <td >{{ cell[2] }}</td>


    </tr>

{% endfor %}

, но она не работает .

РЕДАКТИРОВАТЬ:

Как и предполагалось, я попробовал с ( код 2 ):

{% for row in query_result %}

    <tr>


        <td >{{ cell.0 }}</td>
        <td >{{ cell.2 }}</td>


    </tr>

{% endfor %}

Но это как-то стирает содержимое моих ячеек см. здесь ниже.

результаты код 0 :

enter image description here

результаты код 2 :

enter image description here

Ответы [ 2 ]

1 голос
/ 23 января 2020

Вы можете получить элемент по индексу в шаблонном движке Django, выбрав его так же, как и атрибут, так:

{% for <b>row</b> in query_result %}
    <tr>
        <td >{{ row<b>.0</b> }}</td>
        <td >{{ row<b>.2</b> }}</td>
    </tr>
{% endfor %}

При этом я настоятельно советую попробовать исправить проблему upstream : вместо рендеринга подмножества, посмотрите, что вы можете сделать, чтобы ограничить «столбцы» в query_result.

или вы можете распаковать элементы и поместить второй элемент в одноразовой переменной:

{% for cell0, __, cell2 in query_result %}
    <tr>
        <td >{{ <b>cell0</b> }}</td>
        <td >{{ <b>cell2</b> }}</td>
    </tr>
{% endfor %}
1 голос
/ 23 января 2020

Использование выглядит как {{ cell.0 }} это. Django документы объясняют в разделе переменные и поиски .

Так что вы бы сделали что-то вроде:

{% for row in query_result %}
    <tr>
        <td >{{ cell.0 }}</td>
        <td >{{ cell.2 }}</td>
    </tr>
{% endfor %}
...