在django-templates中渲染时排除某些表单域

时间:2011-06-23 18:04:54

标签: django forms django-templates rendering form-fields

我有一个代码块,以便在我的模板中呈现表单字段,以便

{% for field in form.visible_fields %}
<div class="field_container">
    <div class="field_label question">
    {% field.label_tag  %}
    </div>
    <div class="field_field">
    {{ field}}
    </div>
{% endfor %}
{% for field in form.hidden_fields %}
{{ field }}
{% endfor %}

有没有办法通过指定名称来排除某些表单字段?

由于

1 个答案:

答案 0 :(得分:4)

这是一个modelForm,还是一个常规形式?

如果是modelForm

您可以在modelForm上的Meta类上使用exclude()或fields()列表。

https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#using-a-subset-of-fields-on-the-form

如果是常规表单:

如果您知道字段的名称,您可以放入简单的if检查这些字段,如果它不是其中之一,则打印您的html,如果匹配则不会放入html。不是理想的解决方案。

更好的方法是创建一个不同的表单字段,该字段只包含您想要的字段并使用该字段。