Django表单模板:如何检查字段是否可选?

时间:2013-02-06 07:12:37

标签: django django-forms

我创建了一个简单的表单,视图和模板文件,如下所述。 我的一个表单字段是必需的(url1),一个是可选的(comment1)。 在我的模板中,我想根据它们是否可选来显示这两个字段的字段标记(例如:红色为必需,绿色为Optionali)。我怎样才能做到这一点?

理想情况下,表单中会有一个布尔值,如下所示:form.url1.required_flag

这是我的表格:

class myForm(forms.Form):
    url1 = forms.URLField(max_length=255, label='URL #1', required=True)
    comment1 = forms.CharField(max_length=255, label='Comment #1', required=False)

此表单的视图非常简单。没什么好看的。

以下是模板文件的相关部分:

<tr>
    <td width="100" align="right">
        <div class="field_label">
            {{ form.url1.label_tag }}:
        </div>    
    </td>
    <td width="300">
        <div class="form_element_input">
            {{ form.url1 }}
        </div>    
    </td>
    <td width="100" align="right">
        <div class="field_label">
            {{ form.comment1.label_tag }}:
        </div>    
    </td>
    <td width="300">
        <div class="form_element_input">
            {{ form.comment1 }}
        </div>    
    </td>
</tr>

2 个答案:

答案 0 :(得分:3)

{% if form.comment1.field.required %}
  //do something
{% else %}
  //do something else
{% endif %}

应该帮助

但同样,你可以使用CSS来为一个颜色和url添加另一个颜色。我不认为你需要使用那个

答案 1 :(得分:0)

查看required_css_class

class myForm(forms.Form):
    required_css_class = 'required'
    url1 = forms.URLField(max_length=255, label='URL #1', required=True)
    comment1 = forms.CharField(max_length=255, label='Comment #1', required=False)

您可以使用form.field.css_classes覆盖css课程,或者如果您使用as_pas_table方法,则可以打印出来。