如何在Django模板中判断字段是否可留空?
Django ModelForm 模板中区分必填/非必填字段
你之前的代码无效是因为用错了判断属性——模板里的表单字段实例没有blank属性,正确的做法是使用field.required来判断该字段在表单中是否为必填项。
正确的模板代码示例:
{% for field in form.visible_fields %} <div class="form-group"> {{ field.label_tag }} {# 标记必填字段 #} {% if field.required %} <span style="color: red;">*</span> {% else %} {# 标记非必填字段 #} <span style="color: gray;">(选填)</span> {% endif %} {{ field }} {% if field.help_text %} <small class="text-muted">{{ field.help_text }}</small> {% endif %} </div> {% endfor %}
关键说明:
- 模板中遍历的
field是表单字段实例,它的required属性直接对应表单层面的必填规则:ModelForm会自动根据模型字段的blank属性生成这个值——模型blank=False时,表单required=True;模型blank=True时,表单required=False。如果你在ModelForm中手动覆盖了字段的required属性,也会以表单的设置为准。 - 如果你一定要访问模型字段的
blank属性,可以用field.field.blank,但这不推荐,因为表单的必填规则可能和模型的数据库可空规则不一致(比如某些字段数据库允许为空,但表单要求必填)。
内容的提问来源于stack exchange,提问作者JasonTS
相关产品推荐
相关产品推荐

