2016-09-17 110 views
1

我試圖讓表單使用Charfield進行驗證,但使用Select小部件。表單驗證在Django中失敗

這裏是我的view.py代碼:

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代碼:

class Mpld3PlotForm(forms.Form): 

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

形式不上提交驗證。我根據上傳的文件動態更新選項。任何幫助,將不勝感激。

回答

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