Django 如何知道选中的复选框是否只有{{form.checkbox}}form标记
我如何知道复选框是否被选中(True,1)只有{{form.checkbox}}form标记 “activo”在数据库中定义为(True,1) 我的模板是:Django 如何知道选中的复选框是否只有{{form.checkbox}}form标记,django,django-templates,Django,Django Templates,我如何知道复选框是否被选中(True,1)只有{{form.checkbox}}form标记 “activo”在数据库中定义为(True,1) 我的模板是: {{ form.activo }} RESULTS: <input id="id_activo" type="checkbox" name="activo" checked="checked"/> {{ form.activo.data }} RESULTS: False {{ form.activo.value }} RE
{{ form.activo }}
RESULTS:
<input id="id_activo" type="checkbox" name="activo" checked="checked"/>
{{ form.activo.data }}
RESULTS:
False
{{ form.activo.value }}
RESULTS:
""
{{form.activo}
结果:
{{form.activo.data}
结果:
假的
{{form.activo.value}
结果:
""
然而,没有一个是1,也没有一个是真的
任何提示都将不胜感激。=') 检查request.POST.has_key('activo')或{{form.activo.data}}在使用request.POST初始化时是否实际返回True 您的问题不太清楚,但可能您的问题与以下事实有关:浏览器不会在POST数据中为未选中的复选框添加任何内容
当我不得不区分一个根本没有显示的复选框和一个显示的复选框没有被选中时,这使事情变得复杂。仅仅通过查看POST数据,您无法区分这两种情况。如果您希望在模板中使用布尔条件,这应该可以:
{% if form.activo %}
--
{% else %}
---
{% endif %}
根据您对mbarkhau答案的回复,使用
instance=
不会绑定表单,它只是为表单提供默认值
以下是模板中的逻辑:
{% if form.is_bound %}
{% if form.initial.activo %}
Checked.
{% else %}
Not checked.
{% endif %}
{% else %}
{% if form.activo.data %}
Checked.
{% else %}
Not checked
{% endif %}
{% endif %}
但在视图中执行此逻辑并传递额外的上下文更有意义。比如:
context_data = {...}
if form.is_bound:
activo = form.data.get('activo')
else:
activo = form.initial.get('activo')
context_data['activo'] = bool(activo)
return render_to_response('your_template.html', context_data)
但是没有办法知道带来有界形式的数据?myform=TheForm(instance=mymodel),myform附带填充的数据。@Saurabh{%if form.activo%}没有任何意义,因为form.activo总是以表单的形式出现,它显示的是html代码。