3

私はモデル フォームを使用しており、そのフォームを以下のようにテンプレートにレンダリングしています。

 <table>
    {{form.as_table}}
 </table>

しかし問題は、すべてのフィールドを行としてレンダリングすることです。私のモデルには200行を超える行が含まれているため、要素を200行として表示すると見栄えが悪くなります。それらを5列に分割したいので、合計行は約40〜43行になります。これに利用できる組み込みのテンプレートタグはありますか、または問題を解決できる他の方法を使用していますか?

4

5 に答える 5

5

このドキュメントを参照できます: looping over form fields

テンプレートでできることは

{% for field in form %}

    {%if forloop.counter|divisibleby:"5" %}
        {#after 5 fields, somehow put elements in next row
         of table, paragraph, or using divs etc
        #}
    {%endif%}

    {{field}}
{%endfor%}
于 2013-11-22T11:02:16.483 に答える
1

あなたの質問は少し不明確ですが、この例で十分です。

ループはリストを反復し、例としてすべての行にdata表示されるように置き換えました。column1,column2,column3,column4,column5

<!DOCTYPE html>
<html>
<head>
    <title>Jack of All Trades</title>
</head>
<body>
<table border="1">
{% for element in data %}
    <tr>
    <td><p>column 1 </p></td>
    <td><p>column 2 </p></td>
    <td><p>column 3 </p></td>
    <td><p>column 4 </p></td>
    <td><p>column 5 </p></td>
    </tr>
{% endfor %}
</tr>
</table>
</body>
</html>

5 つの要素があると仮定するdataと、次のようになります。

ここに画像の説明を入力

于 2013-11-22T11:05:23.073 に答える
0
<form method="POST">
{% csrf_token %}
<table>
    {% for field in form %}
        <tr>
            <td>{{ field.label}}</td>
            <td>{{ field }}</td>
        </tr>
    {% endfor %}
</table>
<button type="submit" class="btn btn-primary">Submit</button>
于 2020-09-19T02:23:41.823 に答える