У меня есть данные, поступающие в виде списка/кортежа ключей со списком/кортежем значений, и мне нужно прокрутить их и отобразить рядом в виде вопросов и ответов в таблице.
Данные в виде вопросов_страницы_данных.
{
(
'Organisation name', 'Organisation address', 'Type of organisation',
'Have you delivered projects like this before?',
'Upload evidence to support your answer',
'Your Accountant', 'Responsible person',
'Do you have endorsements to support your application?',
'Who is endorsing your application?',
'Upload evidence to support your answer'
):
(
'sa', 'sas, asa, as, as', 'Limited Company', True, None, 'as', 'as', False,
'weqwe', None
)
}
Код Джинджа:
<table>
{% for questions,answers in questions_page_data.items()%}
<tbody class = "table__body">
{% if questions %}
{% for question in questions %}
{% if answers %}
{% for answer in answers %}
<tr class = "table__row">
<td class = "table__cell">
{{question }}
</td>
<td class = "table__cell">
{{answer}}
</td>
</tr>
{%endfor%}
{%endif%}
{%endfor%}
{%endif%}
</tbody>
{% endfor %}
</table>
Я знаю, что код Jinja вообще неверен :). Вот как это должно выглядеть. Пожалуйста посоветуй
Question Answer
Organisation name sa
Я не могу заархивировать список ключей, так как он имеет повторяющееся имя ключа, которое требуется, поэтому вариант, который я вижу, - это прокрутить его в jinja.
Привет, спасибо за ответ. «Загрузить доказательства, подтверждающие ваш ответ» дважды в кортеже. Если я заархивирую его, один из них будет удален. Надеюсь, это ответ на запрос?
Попробуйте что-то подобное в своем коде Python:
@app.route('/')
def a_route():
questions_page_data = {
(
'Organisation name', 'Organisation address', 'Type of organisation',
'Have you delivered projects like this before?',
'Upload evidence to support your answer',
'Your Accountant', 'Responsible person',
'Do you have endorsements to support your application?',
'Who is endorsing your application?',
'Upload evidence to support your answer'
):
(
'sa', 'sas, asa, as, as', 'Limited Company', True, None, 'as', 'as', False,
'weqwe', None
)
}
return render_template('a_html_file.html', questions_page_data=questions_page_data, zip=zip)
А затем в своем HTML-шаблоне вы можете использовать zip
для одновременного перебора двух списков:
<table>
{% for questions, answers in questions_page_data.items() %}
<tbody class = "table__body">
{% if questions %}
{% for question, answer in zip(questions,answers) %}
<tr class = "table__row">
<td class = "table__cell">
{{ question }}
</td>
<td class = "table__cell">
{{ answer }}
</td>
</tr>
{% endfor %}
{% endif %}
</tbody>
{% endfor %}
</table>
И, наконец, результат для меня выглядит так:
Решит ли перебор нескольких списков вашу проблему? Подробнее см. в сообщении это.