在Django中,要创建一个多选复选框表单字段,你需要使用
MultipleChoiceField
类型的表单字段,并将
widget
参数设置为
CheckboxSelectMultiple
。
以下是一个示例代码,演示如何使用
MultipleChoiceField
和
CheckboxSelectMultiple
创建一个多选复选框表单字段:
from django import forms
class MyForm(forms.Form):
CHOICES = [('apple', 'Apple'), ('banana', 'Banana'), ('orange', 'Orange')]
fruits = forms.MultipleChoiceField(choices=CHOICES, widget=forms.CheckboxSelectMultiple)
在上面的示例代码中,我们创建了一个名为fruits
的多选复选框表单字段,并将选项设置为apple
,banana
和orange
。widget
参数设置为CheckboxSelectMultiple
,以便将表单字段呈现为多个复选框。
然后,你可以在视图中使用此表单,以便在表单中显示多个复选框,并允许用户选择多个选项:
from django.shortcuts import render
from .forms import MyForm
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
selected_fruits = form.cleaned_data['fruits']
# 处理选定的水果
else:
form = MyForm()
return render(request, 'my_template.html', {'form': form})
在上面的示例代码中,我们在视图中创建了一个MyForm
实例,以便在模板中呈现表单。当提交表单时,我们检查表单是否有效,并使用cleaned_data
方法获取选定的水果。
最后,在模板中呈现表单时,你可以使用以下代码来呈现多个复选框:
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
在上面的示例代码中,我们使用form.as_p
将表单呈现为一组段落,并在提交按钮下方显示多个复选框。