Python 为什么Django';s布尔场&x27;在模板中,Bounds字段有时返回字符串,有时返回布尔值?
当表单加载初始值时,或者当表单加载被绑定时(Python 为什么Django';s布尔场&x27;在模板中,Bounds字段有时返回字符串,有时返回布尔值?,python,django,forms,Python,Django,Forms,当表单加载初始值时,或者当表单加载被绑定时(form=skieperform(request.POST))和form.is\u有效() 返回模板中的False(bool) 当表单未在form=skieperform(request.POST)上验证时,则form['field\u name'].value()在模板中返回False(字符串) 我对此感到非常不高兴,因为它使检查布尔字段的状态变得更加困难(例如,为了设置复选框的正确状态) 这是模型定义: BOOLEAN_YN = ( (Tr
form=skieperform(request.POST)
)和form.is\u有效()
返回模板中的False
(bool)
当表单未在form=skieperform(request.POST)
上验证时,则form['field\u name'].value()
在模板中返回False
(字符串)
我对此感到非常不高兴,因为它使检查布尔字段的状态变得更加困难(例如,为了设置复选框的正确状态)
这是模型定义:
BOOLEAN_YN = (
(True, _('Ja')),
(False, _('Nein')),
)
field_name = models.BooleanField(_("A boolean field"), default=False, choices=BOOLEAN_YN)
Django模板中的字段值称为like
{% for value, text in form.field_name.field.choices %}
{{ value }}
{% if form.field_name.value == value %}checked!{% endif %}
{% endfor %}
为什么要这样渲染场?为什么不干脆{{form.field_name}}
?有很多自定义HTML/CSS魔术可以呈现完全自定义的复选框。
{% for value, text in form.field_name.field.choices %}
{{ value }}
{% if form.field_name.value == value %}checked!{% endif %}
{% endfor %}