django表单:如何签出模板中的复选框状态
我有一个带有复选框的表单,可以正常工作,但是当用户提交带有错误的表单并且选中了我的复选框时,我需要更改包含该复选框的div类。所以我在模板中试验了django表单:如何签出模板中的复选框状态,django,checkbox,django-templates,django-forms,Django,Checkbox,Django Templates,Django Forms,我有一个带有复选框的表单,可以正常工作,但是当用户提交带有错误的表单并且选中了我的复选框时,我需要更改包含该复选框的div类。所以我在模板中试验了{{form.mycheckbox.data},在页面加载时显示False。现在,当用户单击复选框时,表单出现错误,它会在上显示。所以我试着: {{if form.mycheckbox.data==True}不起作用 {{if form.mycheckbox.data!=False}不起作用 {{if form.mycheckbox.data=='on
{{form.mycheckbox.data}
,在页面加载时显示False。现在,当用户单击复选框时,表单出现错误,它会在上显示。所以我试着:
{{if form.mycheckbox.data==True}
不起作用
{{if form.mycheckbox.data!=False}
不起作用
{{if form.mycheckbox.data=='on'}}
不起作用
{{if form.mycheckbox.data==on}}
不起作用使用{%if form.mycheckbox.value%}
。如果选中该框,则该值将计算为true。对于相反的行为,请使用{%if not form.mycheckbox.value%}
注意语法是{%if…%}
,而不是{{if…}
。百分比括号用于命令,双括号用于输出变量。在models.py中:
class Article:
published = BooleanField()
(...)
在模板中:
<input type="checkbox" name="published" {% if article.published %}checked{% endif %} />
为我工作:
{% for foo in form.tags %}
<label class="publication-tag">
<input class="publication-tag__checkbox"
{% if foo.choice_value in foo.value %}checked="checked"{% endif %}
type="checkbox"
name="{{ foo.name }}"
value="{{ foo.choice_value }}">
{% endfor %}
然而,首先您应该在模型中使用BooleanField,而不是CharField。 然后,有两个访问:
- 只需在模板中放入{{form.yourField}}(首选)
- 或者,使用{%if form.yourfield.value%}选中{%endif%}
if条件的更正是{%if foo.choice_forms.tags.value%}checked=“checked”{%endif%}
{%if foo.choice_value in foo.value%}
这一切正常。
{% if foo.choice_value in foo.value %}checked="checked"{% endif %}