2015-06-15 81 views
1

我正在嘗試遍歷表單域,並且不想使用默認{{field}}標記。我想循環定製每個字段。Django自定義表單模板和幫助文本

{% 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 %} 

我想用的東西,而不是

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

渲染到:

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

我想:

<input class="**{{ field.class }}**" id="id_{{ field.html_name }}" name="{{ field.html_name }}" type="**{{ field.type }}**" value="{{ field.value }}" /> 

回答

0

創建標籤:

from django import template 
register = template.Library() 

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

或在表單中定義。答案是here