Объединение двух переменных в Django, которые отображаются с помощью шаблона - PullRequest
1 голос
/ 30 августа 2011

Полу краткий обзор ...

--- Индексы - это список индексов Python, которые соответствуют общему количеству строк в таблице HTML.Например, если в столбце 5 строк, список будет [0, 1, 2, 3, 4].

--- RowNames - это список Python отдельных имен строк таблицы HTML.Например, [Название, Год, Автор, Дата, Состояние]

--- ColData - это данные, которые будут заполнять столбцы таблиц HTML, соответствующие строкам.Например [«Великий Скотт», 1989, «Джеймс Биксби», «12-4-2011», «МА»]

Вот что мне нужно сделать ...

{% for Index in Indices %} 
       <tr>
             <td width='11%' align='right'><strong>{{ RowNames.Index }}</strong></td>   
             <td width='89%' align='left'>{{ ColData.Index }}</td>      
      </tr>             
{% endfor %}     

Однако Django не интерпретирует {{RowNames.Index}} или {{ColData.Index}} как i-й элемент списка.Как я могу перекодировать то, что у меня есть выше, чтобы оно интерпретировалось как i-й элемент списка?

Заранее спасибо.

1 Ответ

0 голосов
/ 30 августа 2011

Вы можете получить доступ к индексу элемента через forloop.counter0 (см. здесь ).

Хорошо, я вспомнил неправильно. В основном вы должны подходить к проблеме следующим образом: создать список объектов или список кортежей. Django не поддерживает это по причине - программирование не должно выполняться в шаблонах.

Используя функцию Python zip(), вы можете создать список кортежей в следующей форме: [(имя строки, coldata), (имя строки, coldata) ...]

mydata = zip(rowname_list, coldata_list)

Теперь в вашем шаблоне вы можете перебирать каждое имя строки и coldata следующим образом:

{% for rowname,coldata in mydata %}
<tr>
    <td width='11%' align='right'><strong>{{ rowname }}</strong></td>   
    <td width='89%' align='left'>{{ coldata }}</td>      
</tr>  
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...