0

ダミーフォームの送信ボタンをクリックすると、以下のエラーが発生します

禁じられた (403)

CSRF 検証に失敗しました。リクエストは中止されました

私のviews.py(上記の必要なインポートを行った)は次のようになります:

def search(request):
       errors=[]
       if request.method=="POST":
             if not request.POST['name']:
                       errors.append('Name field is empty')
             if not request.POST['subject']:
                       errors.append('Subject field is empty')
             if not request.POST['age']:
                       errors.append('Age field is empty')
             if not errors:
                       thank()
       return render_to_response('search.html',{'errors':errors},context_instance=RequestContext(request))

def thank(search):
      return HttpResponse('<html><p>Post done successfully</p></html>')

私のsearch.htmlは次のとおりです。

    <form method="post" action='/search/'>
     <p>Name: <input type="text" name="name"/></p>
     <p>Subject  <input type="text" name="subject"/></p>
     <p>Age: <input type="text" name="age"/></p>
     <input type="submit" value="Hit Me!!"/>
    </form>
  </body>
 </html>

誰か教えてください、どうすればこのエラーを克服できますか?

4

2 に答える 2

0

私が言おうとしていたのは、あなたのタグの{% csrf_token %}間に が表示されないということです。<form></form>これにより、CSRF 検証が失敗します。上のポスターは私を打ち負かしました。

于 2012-05-12T14:12:34.817 に答える
0

Well,

1 . Add 'django.core.context_processors.csrf' to TEMPLATE_CONTEXT_PROCESSORS settings in settings.py. 2. Modify your forms like this,

<form method="post" action='/search/'>
  {% csrf_token %}
  <p>Name: <input type="text" name="name"/></p>
  <p>Subject  <input type="text" name="subject"/></p>
  <p>Age: <input type="text" name="age"/></p>
  <input type="submit" value="Hit Me!!"/>
</form>
于 2012-05-12T11:52:58.003 に答える