1

I'm trying iterate over form fields, and not want to use default {{ field }} tag. I want customise each field in cycle.

{% for field in wizard.form %}
<div class="row">
        <div class="small-8 columns">
            <label for="id_{{ field.html_name }}"class="inline{% if field.errors %}error {% endif %}">
                {{ field.label }}
            </label>

        </div>
        <div class="small-4 columns">

            {{ field|add_error_class:"error" }}

            {% if field.errors %}
                <small class="error">{{ field.errors.as_text }}</small>
            {% endif %}
        </div>
    </div>
{% endfor %}

I want to use something instead

{{ field|add_error_class:"error" }}.

Renders to:

<input class="timepicker" id="id_1-begin_time" name="1-begin_time" type="text" value="01:30:00" />

I want:

<input class="**{{ field.class }}**" id="id_{{ field.html_name }}" name="{{ field.html_name }}" type="**{{ field.type }}**" value="{{ field.value }}" />
ruddra
  • 50,746
  • 7
  • 78
  • 101
Anshik
  • 633
  • 8
  • 15

1 Answers1

0

Create tag:

from django import template
register = template.Library()

@register.filter(name='add_class')
def add_class(field, args):
   return field.as_widget(attrs={"class": args})

Or in form define. Answer is here

Community
  • 1
  • 1
i.krivosheev
  • 387
  • 3
  • 18