0

フォームを保存している非常に基本的なビューがあります。何らかの理由で、「ビューは HttpResponse オブジェクトを返しませんでした」というエラーが表示され続けます。ここでこの一般的な問題を見ましたが、私に当てはまる解決策が見つかりませんでした。誰か考えがありますか?以下のコードを含めました。この簡単な質問を手伝っていただければ幸いです。

def EarlyAdopterSignup(request):
    f = LandingPageForm(request.POST)
    if f.is_valid():
        email = f.cleaned_data['email']
        zip = f.cleaned_data['zip']
        adopter = EarlyAdopter(email = email, zip = zip)
        try:
            adopter.save()
            return render_to_response('EarlyAdopterSignup.html')
        except:
            return HttpResponse("There was an error with your submission. Please try again.")
4

2 に答える 2

5

AL の発言をフォローアップするには、フォームが有効でない場合に対処する必要があります。

これは、バインドされた無効なフォーム ( f) をテンプレートに戻すことで、非常に簡単に処理できます。

https://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs#using-a-form-in-a-view

あなたがする必要があることを正確に示しています^

def EarlyAdopterSignup(request):
    f = LandingPageForm(request.POST)
    if f.is_valid():
        email = f.cleaned_data['email']
        zip = f.cleaned_data['zip']
        adopter = EarlyAdopter(email = email, zip = zip)
        try:
            adopter.save()
            return render_to_response('EarlyAdopterSignup.html')
        except:
            return HttpResponse("There was an error with your submission. Please try again.")

   # handle where not valid
   return render(request, 'your_form_template.html', {
    'form': f,  # <- your invalid form instance
})
于 2012-07-03T18:33:48.263 に答える
3

まず、フォームが有効でない場合、何も返されません。エラーが表示されたフォームを再表示する必要があります。

于 2012-07-03T18:15:51.723 に答える