0

RegistrationForm クラス内の clean_field 関数を使用して、ユーザーがアップロードしたファイルのタイプ チェックを実行しようとしました。検証部分はうまく機能しており、リダイレクトは .kml ファイルがアップロードされた場合にのみ機能します。しかし、KML 以外のファイルをアップロードしようとすると問題が発生します。レイズ ValidationError は機能していないようです。代わりに、次のエラーがブラウザに表示されます。

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 を初めて使用するので、重要な部分が欠けている可能性があります。どんな種類の助けも大歓迎です。ありがとうございました :)

4

1 に答える 1