Django 复选框不 return 什么都没有
Django checkbox do not return nothing
我正在做一个项目,我需要按顺序获取复选框值,但是当该复选框未选中时,django 不会 return 任何东西。
我该怎么做 return False 而不是什么都没有?
forms.py
class myFormExemple(forms.Form):
checkbox = forms.BooleanField(required=False)
views.py
def MyViewExemple(request):
if request.method == 'POST':
print(request.POST.getlist('checkbox'))
context = {
'form': myFormExemple
}
return render(request, "cadastro/myHTMLTemplate.html", context)
和myHTMLTemplate.html:
<form method="post" id='form'>
{% csrf_token %}
{{form.checkbox}}
<button type="submit">save</button>
</form>
如果未选中该复选框,POST 请求确实 不 包含该复选框的名称,这就是 HTML 表单的工作方式.
但是,您可以使用表单验证和清理数据,并将其转换为布尔值:
def MyViewExemple(request):
if request.method == 'POST':
form = myFormExemple(<strong>request.POST</strong>)
if form.is_valid():
print(<strong>form.cleaned_data['checkbox']</strong>)
context = {
'form': myFormExemple()
}
return render(request, "cadastro/myHTMLTemplate.html", context)
我们就这样构建了一个以request.POST
作为数据源的表单,然后如果表单有效,我们就可以得到一个布尔值form.cleaned_data['checkbox']
。
Django 的表单因此 不 仅用于呈现表单,还用于处理表单数据、验证数据并将数据转换为另一种类型。
我正在做一个项目,我需要按顺序获取复选框值,但是当该复选框未选中时,django 不会 return 任何东西。 我该怎么做 return False 而不是什么都没有?
forms.py
class myFormExemple(forms.Form):
checkbox = forms.BooleanField(required=False)
views.py
def MyViewExemple(request):
if request.method == 'POST':
print(request.POST.getlist('checkbox'))
context = {
'form': myFormExemple
}
return render(request, "cadastro/myHTMLTemplate.html", context)
和myHTMLTemplate.html:
<form method="post" id='form'>
{% csrf_token %}
{{form.checkbox}}
<button type="submit">save</button>
</form>
如果未选中该复选框,POST 请求确实 不 包含该复选框的名称,这就是 HTML 表单的工作方式.
但是,您可以使用表单验证和清理数据,并将其转换为布尔值:
def MyViewExemple(request):
if request.method == 'POST':
form = myFormExemple(<strong>request.POST</strong>)
if form.is_valid():
print(<strong>form.cleaned_data['checkbox']</strong>)
context = {
'form': myFormExemple()
}
return render(request, "cadastro/myHTMLTemplate.html", context)
我们就这样构建了一个以request.POST
作为数据源的表单,然后如果表单有效,我们就可以得到一个布尔值form.cleaned_data['checkbox']
。
Django 的表单因此 不 仅用于呈现表单,还用于处理表单数据、验证数据并将数据转换为另一种类型。