1

템플릿 중 하나에서 많은 체크 박스를 사용하고 싶습니다. 제대로 작동하지 않습니다.Django - checkboxes 배열

내가 좋아하는 내 양식에 forms.BooleanField()를 포함하는 배열을 전달하기 위해 노력하고있어 :

{% for a in form.arrayCheck %} 
{{ a }} 
{% endfor %} 

내 양식에 의해 호출 내 템플릿에이 같은

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) 

출력을 보기 :

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')

답변

3

의 결과를 얻을, 내보기에서 직접 배열을 보낼 수 있습니다. 그들은 그렇게 일하지 않습니다. MultipleChoiceField를 사용하여 폼을 만듭니다.

+0

그게 무슨 뜻이야? 양식 안에 필드를 만들었습니다. – Johanna

+0

아니요. 그들은 목록에 있습니다. Django 폼 클래스를 사용하십시오. –

+0

그들은 클래스'클래스 ProjetSettingsForm (forms.Form)에 :'그냥 내 질문에 넣지 않았다 – Johanna