2009-12-12 51 views
0

如何在複選框字段的模板中添加不同的XHTML?我希望以下工作。我試過在下面的例子中使用「is_checkbox」,但它不起作用,因爲這不是管理員表單。如何爲Django中的複選框添加不同的內容?

{% for field in payment_form %} 
    <p class="{% if field.is_checkbox %}checkboxes {% endif %} "> 
    {% if field.is_checkbox %} 
     {{ field }} {{ field.label_tag }} 
    {% else %} 
     {{ field.label_tag }} {{ field }} 
    {% endif %} 
    <span class="error">{{ field.errors }}</span> 
    </p> 
    {% endfor %} 

回答

1

那麼,如果它確實是一個自定義窗體而不是管理窗體,那麼您總是可以覆蓋這些attrs的窗體域/窗口小部件。 一樣,

class MyCheckboxInput(forms.CheckboxInput): 
    def is_checkbox(self): 
     return True 

而且使用在窗體類MyCheckboxInput,而不是forms.CheckboxInput。它會給你,模板上的at_checkbox attr,然後你的代碼將工作。

0

我會使用TemplateTag,一個自定義過濾器來格式化表單。 form {{form | beautify_form}} 由於所有要顯示的表單都可以編輯,所以您可以通過這種方式將所有格式化委託給單獨的函數。