2016-07-21 9 views
1

問題は、フォームクラスに複数の選択フィールドがあり、それらが0になりません。is_validメソッドがview.pyにあります。Django複数選択フィールドの有効性確認

Forms.py

class SearchForm(forms.Form) : 
LIMIT_OPTIONS = (('5', '5'), 
       ('10', '10'), 
       ('15', '15'), 
       ('20', '20')) 
keyword = forms.CharField(max_length=50)  
limit = forms.MultipleChoiceField(widget=forms.Select, choices=LIMIT_OPTIONS) 

View.py

class IndexView(View) : 
form_class = SearchForm 
template_name = 'web/index.html' 
def get(self, request) : 
    form = self.form_class(None) 
    return render(request, self.template_name, {'form':form}) 

def post (self, request) : 
    form = self.form_class(request.POST) 
    if form.is_valid(): 
     url = '****' 

     keyword = form.cleaned_data['keyword'] 
     limit = form.cleaned_data['limit'] 

     userupload = {'keyword': keyword, 'limit': limit} 

     response = requests.post(url, json = userupload) 

     return HttpResponse(response) 
    return HttpResponse('<h1>Error</h1>') 

すべてがうまくているよりも、私はCharFieldMultipleChoiceFieldを変更した場合...

私はに探していましたインターネットは、相対的な答えを見つけることができませんでした...

注:(それが重要な場合は念のため)私はあなたの助けのための

感謝を任意のデータベースやモデルを使用しないでください。

答えて

0

だから、あなたはあなたの中にドロップダウン選択フィールドを持つようにしたい場合はforms.pyとWidget - Selectは(is_validメソッドを)検証に合格しない

class SearchForm(forms.Form) : 
LIMIT_OPTIONS = (('5', '5'), 
       ('10', '10'), 
       ('15', '15'), 
       ('20', '20')) 
    limit = forms.MultipleChoiceField(widget=forms.Select, choices=LIMIT_OPTIONS) 

ただ、一般CharFieldに変更し、widget=forms.Select(choices=LIMIT_OPTIONS)

を追加例:

class SearchForm(forms.Form) : 
LIMIT_OPTIONS = (('5', '5'), 
       ('10', '10'), 
       ('15', '15'), 
       ('20', '20')) 
    limit = forms.CharField(widget=forms.Select(choices=LIMIT_OPTIONS)) 
1

MultipleChoiceFieldのデフォルトのウィジェットはSelectMultipleです。あなたはforms.Selectにフォームで変更されていることを

...:

選択と同様

が、複数選択することができます。したがって結果。

+0

年ですが、SelectMultipleを使用すると、フィールドをドロップダウンリストフィールドに変更すると別の問題が発生します... –

+0

どのようなHTMLフィールドが必要ですか? – e4c5

+0

ドロップダウンボックスが私にとっては最高の選択です) –

関連する問題