2009-12-12 56 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}} 由于所有要显示的表单都可以编辑,所以您可以通过这种方式将所有格式化委托给单独的函数。