【问题标题】:django - better way to generate repeated value/error code in template?django - 在模板中生成重复值/错误代码的更好方法?
【发布时间】: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


【解决方案1】:

对于任何感兴趣的人,我不知道是否有更好的解决方案,但模板宏 a la djangosn-ps.org/sn-ps/363 是我解决此问题的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2012-08-17
    • 2014-05-15
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    相关资源
    最近更新 更多