Django - лучший способ генерировать повторное значение / код ошибки в шаблоне? - PullRequest
0 голосов
/ 15 ноября 2011

Все еще изучаю джанго и питона ...

У меня есть форма со многими полями. Я хочу разместить их в строках по два поля в каждом, и для этого я использую таблицу. Я не могу просто перебрать все поля, так как мне нужен более точный контроль над некоторыми вещами.

По сути, я выкладываю строку из двух полей, а затем, если в каком-либо из этих полей есть ошибки, генерируется вторая строка, содержащая ошибки.

В шаблоне я повторяю следующую схему снова и снова:

 <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.

1 Ответ

0 голосов
/ 13 декабря 2011

Для тех, кто заинтересован, я не знаю, есть ли лучшее решение, но шаблонные макросы a la djangosnippets.org/snippets/363 - это то, как я решил эту проблему.

...