Django-复选框数组
我想在我的一个模板中去掉一些复选框,但我无法让它工作 我试图在我的表单中传递一个包含forms.BooleanField()的数组,如下所示:Django-复选框数组,django,django-forms,django-templates,checkbox,django-models,Django,Django Forms,Django Templates,Checkbox,Django Models,我想在我的一个模板中去掉一些复选框,但我无法让它工作 我试图在我的表单中传递一个包含forms.BooleanField()的数组,如下所示: class ProjetSettingsForm(forms.Form): ## A bunch of form fields of no interest arrayCheck = [] cb1 = forms.BooleanField() cb2 = forms.BooleanField() arrayCh
class ProjetSettingsForm(forms.Form):
## A bunch of form fields of no interest
arrayCheck = []
cb1 = forms.BooleanField()
cb2 = forms.BooleanField()
arrayCheck.append(cb1)
arrayCheck.append(cb2)
然后在我的模板中像这样输出它
{% for a in form.arrayCheck %}
{{ a }}
{% endfor %}
我的表单由一个视图调用:
def settings(request):
if request.method == "POST" and (request.POST.get("settings_task_type", "") == "Enregistrer Task Type"):
form = ProjetSettingsForm(request.POST, proj_id=request.session['proj'])
if form.is_valid():
settings = form.save_task_type()
c = {'proj':proj, 'form':form, 'settings':settings}
return render_to_response('projet/settings.html', c, context_instance=RequestContext(request))
else:
form = ProjetSettingsForm(proj_id=request.session['proj'])
settings = ""
c = {'proj':proj, 'form':form, 'settings':settings}
return render_to_response('projet/settings.html', c, context_instance=RequestContext(request))
但它显示:
<django.forms.fields.BooleanField object at 0xb595a2ec> <django.forms.fields.BooleanField object at 0xb595a22c>
如何使其正确显示复选框
我之所以需要将复选框作为一个数组而不是一个接一个地传递,是因为将有许多复选框,而且我不会事先知道它们的确切数目,这取决于sql查询
编辑:
如果有人看到这篇文章,我会找到一个解决办法。当我需要传递一组复选框时,我不使用表单
我直接从视图中发送数组,在模板中创建复选框,并在
request.POST.getlist('my_array')中获取结果。
不要在表单外使用表单字段。他们不是那样工作的。创建一个带有多个EchoIceField的表单。这是什么意思?我在表单中创建了字段不,你没有。它们在一个列表中。使用Django表单类。它们位于类class项目设置表单(forms.form):
我只是没有把它放在我的问题中,那么什么是arrayCheck
?如果没有看到完整的代码,这是没有意义的。它是Form类的一个变量。我知道我做错了什么,但我不知道是什么