2016-09-13 8 views
0

私はフォームを検証するしかしできないリストとして選択したすべてのチェックボックスの値を取得しようとしています原因選択肢オプション検証とmultipleselectチェックボックスのDjangoのフォームの未知の数は

forms.pyにフィールドを取得:

class MarkAccountsForm(forms.Form): 
    accounts = forms.MultipleChoiceField(
     widget = forms.CheckboxSelectMultiple, 
     required = False 
    ) 

テンプレート:

{% for account in accounts %} 
    <tr> 
     <td><input type="checkbox" name="accounts" value="{{ account.id }}"></td> 
     <td>{{ account.name }}</td> 
    </tr> 
{% endfor %} 

views.py:

if request.method == 'POST': 
    form = MarkAccountsForm(request.POST) 
    if form.is_valid(): #this fails 
     data = form.cleaned_data 
私は form.errorsを印刷しようとすると

、それはSelect a valid choice. 1119 is not one of the available choices.

私は選択肢の検証を回避し、まだすべてのリストとしてチェックチェックボックスを占めるの値を取得することができる方法があると言いますか?どのような選択肢を許可するにはどうすればいいですか?フォームの検証をしなくてもリストを手に入れることができれば、それは良いことです。

答えて

1

検証について気にしない場合は、なぜis_validに電話していますか?実際、なぜFormクラスを使っているのですか?あなたはフォームを表示するためにそれを使用していないので、あなたはそれを完全に残して、ちょうどrequest.POST.getlist('accounts')からデータを取得するかもしれません。

+0

ありがとうございました。 'is_valid'を避けるのは私の二次的なオプションでした。もしそれができなければ、' getlist'について知りませんでした。 'get'を試してみました。 – MohitC

関連する問題