2016-09-17 18 views
1

私はCharfieldで検証するフォームを取得しようとしていますが、Selectウィジェットを使用しています。Djangoでフォームの検証に失敗しました

class Mpld3PlotForm(forms.Form): 

    plot_file = forms.CharField(widget=forms.Select(choices=[('', 'a'), ('', 'b')])) 

フォーム送信に検証しません:

def mpld3plot(request): 
    form = PlotlyPlotForm() 
    form.fields['plot_file'].widget.choices = own_funcs.uploaded_files(string=False) 

    if request.method == 'POST': 
     print(form.is_valid()) 
     if form.is_valid(): 

      return HttpResponseRedirect('/mpld3') 

     else: 
      pass 
    else: 
     pass 

    return render(request, 'evert/plot.html', {'plottype': 'MPLD3', 
               'form': form}) 

以下は私のforms.pyコードです:

は、ここに私のview.pyコードです。アップロードされたファイルに基づいて選択肢を動的に更新します。どんな助けもありがとう。

答えて

0

私はrequestオブジェクトをフォームに渡しませんでした。

view.pyファイルには、次のようになります。

def mpld3plot(request): 
    form = PlotlyPlotForm(request.POST) 
    form.fields['plot_file'].widget.choices = own_funcs.uploaded_files(string=False) 

    if request.method == 'POST': 
     print(form.is_valid()) 
     if form.is_valid(): 

      return HttpResponseRedirect('/mpld3') 

     else: 
      pass 
    else: 
     pass 

    return render(request, 'evert/plot.html', {'plottype': 'MPLD3', 
               'form': form}) 
関連する問題