【问题标题】:How do I add different content for a checkbox in Django?如何在 Django 中为复选框添加不同的内容?
【发布时间】:2009-12-12 05:00:18
【问题描述】:

如何在模板中为复选框字段添加不同的 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 %} 

【问题讨论】:

    标签: django forms


    【解决方案1】:

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

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

    并在表单类中使用 MyCheckboxInput,而不是 forms.CheckboxInput。它会给你,模板上的 is_checkbox attr,然后你的代码就可以工作了。

    【讨论】:

      【解决方案2】:

      我会使用 TemplateTag,一个自定义过滤器来格式化表单。 形式 {{ form|beautify_form }} 由于可以编辑所有要显示的表单,因此您可以摆脱委托给单独函数的所有格式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-10
        • 2021-10-08
        • 2012-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-09
        • 1970-01-01
        相关资源
        最近更新 更多