私は、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にはかなり新しいので、私は重要な部分を欠いているかもしれません。どんな種類の助けでも大歓迎です。ありがとうございました:)
あなたが他のブロックを追加する必要はありません、ただデインデント既存の 'return render()'は、内部ではなく 'else'の後に来ます。 – Alasdair
はい、いい考えです。彼が 'POST'リクエストからビューに追加の引数を渡したいのでない限り。 – masnun
Worked!しかし、今私はエラーメッセージを表示する方法を確認する必要があります!この点に関する助け? –