如何为Django中的复选框添加不同的内容?

时间:2009-12-12 05:00:18

标签: django forms

如何在复选框字段的模板中添加不同的XHTML?我希望以下工作。我尝试在下面的示例中使用“is_checkbox”,但它不起作用,因为这不是管理员表单。

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

2 个答案:

答案 0 :(得分:1)

好吧,如果它确实是一个自定义表单而不是管理表单,您可以随时覆盖这些表单的表单字段/小部件。 喜欢,

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

在表单类中使用 MyCheckboxInput ,而不是 forms.CheckboxInput 。它将为您提供模板上的 is_checkbox attr,然后您的代码就可以运行。

答案 1 :(得分:0)

我会使用TemplateTag执行此操作,TemplateTag是一种自定义过滤器,用于格式化表单。 形式{{form | beautify_form}} 由于可以编辑所有要显示的表单,因此您可以放弃委派给单独函数的所有格式。