1

私は自分のテンプレートの中のいくつかのチェックボックスを使いたいので、動作させることができません。Django - チェックボックスの配列

私は次のように私の形で)forms.BooleanFieldを(含む配列を渡すためにしようとしている:私のフォームがで呼び出された

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> 

どうすればチェックボックスを正しく表示できますか?

チェックボックスを配列として渡す必要がある理由は、配列が1つではなく、多くの配列が存在することです。その正確な数はSQLクエリに依存しています。

EDIT:誰かがこのポストに遭遇した場合、私は解決策を見つけた

。私はチェックボックスの配列を渡す必要があるときにフォームを使用しません。

は、私は、テンプレート内のチェックボックスを作成し、フォームの外にフォームフィールドを使用しないでくださいrequest.POST.getlist('my_array')

答えて

3

で結果を取得するには、私の見解から直接配列を送信します。彼らはそのようには動作しません。 MultipleChoiceFieldを使用してフォームを作成します。

+0

それはどういう意味ですか?私はフォーム内のフィールドを作成しました – Johanna

+0

いいえ、あなたはしませんでした。彼らはリストに入っています。 Djangoフォームクラスを使用します。 –

+0

クラス 'クラスProjetSettingsForm(forms.Form):'私はちょうどそれを私の質問に入れませんでした – Johanna

関連する問題