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 回答