我試圖對用戶使用在RegistrationForm類中的clean_field函數上傳的文件進行類型檢查。驗證部分運行良好,重定向僅在上傳.kml文件時才起作用。但是當我嘗試上傳非KML文件時會出現問題。引發ValidationError似乎不起作用。而是在瀏覽器上顯示以下錯誤。Django raise Validationerror導致Valuetype錯誤
ValueError at /startanalysis/
The view aerial_analysis.views.second_page didn't return an HttpResponse object.It returned None instead.
這裏是我的表單文件
class RegistrationForm(forms.Form):
resolution = forms.IntegerField(label='Enter required resolution : ')
kml = forms.FileField(label='Enter File : ')
CHOICES = (('1' , '1'), ('2', '2'))
field = forms.ChoiceField(label='Type of analysis :',choices=CHOICES)
def clean_kml (self):
if not self.cleaned_data['kml'].name.endswith('.kml'):
raise ValidationError("Please Upload a Valid KML File")
return self.cleaned_data['kml']
這裏是我的這個頁面
def second_page(request):
if request.method == 'POST':
form = RegistrationForm(request.POST,request.FILES)
if form.is_valid():
return HttpResponseRedirect('/main')
else:
form = RegistrationForm()
return render(request, "secondpage.html", {'head_title': 'Head','form1': form,})
我希望瀏覽器只顯示在表單字段錯誤信息查看方式。我對Django相當陌生,所以我可能會錯過一個重要部分。任何形式的幫助將不勝感激。謝謝:)
你並不需要添加一個else塊,只是去縮進現有的'return render()',所以它在'else'之後而不是在裏面。 – Alasdair
是的,這也是一個好主意。除非他想將附加參數傳遞給'POST'請求中的視圖。 – masnun
工作!但現在我需要檢查如何向用戶顯示錯誤消息!在這方面有什麼幫助? –