Как я могу нарезать список полей форм-полей в колбе? - PullRequest
0 голосов
/ 29 ноября 2018

Раздел кода ниже принимает подчиненную форму (список полей формы) и перебирает каждое из полей и отображает их в формате HTML.Я хотел бы отобразить только первое (x) количество элементов, затем написать что-то и затем отобразить последние (y) элементы.

Я попытался нарезать список for field in l[0:x], но я получил TypeError: unhashable type: 'slice'.

Буду признателен за любую помощь, пожалуйста, дайте мне знать, если я не предоставил достаточно информации или контекста в вопросах, и я предоставлю любую необходимую дополнительную информацию!

{% for l in form.systems %}
<div class="column">
    <b> System {{ loop.index }} </b>
    <table>
        {% for field in l %}
        <tr>
            <td>
                {{field.label}}
            </td>
            <td>
                {{field(size=20)}}
            </td>  
        </tr>                         
        {% endfor %}
    </table>
</div>
{% endfor %}

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Мне удалось получить доступ к частям цикла с помощью элементов управления цикла из jinja:

В приложении Flask: app.jinja_env.add_extension('jinja2.ext.loopcontrols')

В HTML:

                        {% for field in l %}
                            {% if loop.index < 5 %}
                            <tr>
                                <td>
                                    {{field.label}}
                                </td>
                                <td>
                                    {{field(size=20)}}
                                </td>  
                            </tr>
                            {% endif %}                                       
                        {% endfor %}
0 голосов
/ 29 ноября 2018

В шаблонах [:] эта нарезка не работает, попробуйте это

{{ your_list|slice:"0:x" }}
...