【发布时间】:2011-11-14 21:45:55
【问题描述】:
还在学习django和python...
我有一个包含许多字段的表单。我想将它们排列成两个字段的行,并且正在使用一个表来这样做。我不能简单地遍历所有字段,因为我想更好地控制某些事情。
本质上,我输出一行两个字段,然后如果其中任何一个字段有错误,则生成包含错误的第二行。
在模板中,我一遍又一遍地重复以下模式:
<tr>
<td class="labels">Order Number:</td><td class="textentry">{{ order.ordernum }}</td>
<td class="labels">Order Status:</td><td class="textentry">{{ order.status }} </td>
</tr>
{% if order.ordernum.errors %}
{% for error in order.ordernum.errors %}
<tr class="errors"><td colspan=2> {{ error|escape }}</td>
{% endfor %}
{% if order.status.errors %}
{% for error in order.status.errors %}
<td colspan=2> {{ error|escape }}</td>
{% endfor %}
{% endif %}
</tr>
{% endif %}
从重复模式到重复模式的所有变化都是特定的字段名称。
重复让我想知道:在模板中是否有更好的方法来做到这一点?有没有办法从模板中调用一个函数,我可以传入字段名称?
感谢您的帮助!
W.
【问题讨论】:
-
我想知道这是否是一个使用模板宏的好地方,比如djangosnippets.org/snippets/363?
-
我认为除了迭代每个字段之外,您别无选择,您希望拥有多少更精细的控制?
-
例如,在某些情况下,我需要一行中的两个字段,但在其他情况下,我需要一行中的三行。我使用了模板宏 sn-ps,它几乎完全符合我的需要......
标签: django-forms django-templates