2012-05-12 9 views
0

Я получаю ошибку ниже при нажатии на кнопку отправки моей фиктивной формеДжанго формы Forbidden (403) ошибки

Forbidden (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> 

Кто-то пожалуйста, дайте мне знать, как я могу преодолеть эту ошибку?

ответ

0

Ну,

1. Добавьте 'django.core.context_processors.csrf' в настройки TEMPLATE_CONTEXT_PROCESSORS в settings.py. 2. Измените ваши формы, как это,

<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> 
0

Я собирался сказать, я не вижу {% csrf_token %} между вашими <form></form> тегами. Это приведет к сбою проверки CSRF. Вышеупомянутый плакат избил меня.