为什么Django的BooleanField的BoundField有时返回字符串,有时在模板中返回布尔值?

时间:2017-01-24 09:47:44

标签: python django forms

当表单加载初始值或表单加载绑定(form = SkierForm(request.POST))和form.is_valid()时,

form['field_name'].value()

在模板中返回False(bool)!

当表单未在form = SkierForm(request.POST)上验证时,form['field_name'].value()会在模板中返回False(字符串)。

我对此感到非常不满,因为它会更难检查BooleanField的状态(例如,为了设置复选框的正确状态)。

这是模型定义:

BOOLEAN_YN = (
    (True, _('Ja')),
    (False, _('Nein')),
)
field_name = models.BooleanField(_("A boolean field"), default=False, choices=BOOLEAN_YN)

Django模板中的字段值称为

{% for value, text in form.field_name.field.choices %}
   {{ value }}
   {% if form.field_name.value == value %}checked!{% endif %}
{% endfor %}

0 个答案:

没有答案