2
 <form action="/contact/" method="post">
 {% for field in form %}
 <div class="fieldWrapper">
    {{ field.errors }}
    {{ field.label_tag }}: {{ field }}
 </div>
{% endfor %}
<p><input type="submit" value="Send message" /></p>
</form>

コードは行ごとのデータ入力で完全に機能しますが、スペースを節約するために、データを行ごとに 2 セットでレンダリングしたいと考えています..(つまり、行ごとに 2 つのフィールドと使用<br>)

それは次のように見えるはずです

field1.tag : field1,   field2.tag: field2.

またはいくつかの同様のソリューション

4

1 に答える 1

1

最善の解決策: スタイリング

最善の解決策は、スタイリング レベルで解決することです。

そのように(デモを参照):

  • テンプレート:

    <form action="/contact/" method="post">
        {% for field in form %}
            <div class="fieldWrapper">
                {{ field.errors }}
                {{ field.label_tag }}: {{ field }}
            </div>
        {% endfor %}
        <p><input type="submit" value="Send message" /></p>
    </form>
    
  • CSS:

    .fieldWrapper {
        float: left;
        width: 50%;
    }​
    

代替ソリューション: ドキュメント構造

または、より複雑なテンプレート コードを使用して行と列を生成することもできます。これを行うには、次のようなDjango のforループ変数を使用できます。

  • forloop.counter(またはforloop.counter0) - ループ内の現在の要素の番号を含む、
  • forloop.first-True現在の要素が最初の要素の場合、Falseそうでない場合は、
  • forloop.last-True現在の要素が最後の要素である場合、Falseそうでない場合は、

ただし、プレゼンテーションの問題 (「画面のスペースを節約する」) は、スタイリング レイヤーで解決する必要があります。

于 2012-12-09T20:33:38.483 に答える