Отправка формы через POST и CSRF в Django
Давайте отправим форму методом POST.
В теге form укажем
method="post":
<form action="/result/" method="post">
<input name="title">
<input name="slug">
<input type="submit">
</form>
Для POST Django требует защиту от
CSRF
атаки. В форму нужно добавить
скрытое поле с токеном. В шаблоне
для этого есть тег
{% csrf_token %}:
<form action="/result/" method="post">
{% csrf_token %}
<input name="title">
<input name="slug">
<input type="submit">
</form>
Данные POST-формы читают из
request.POST:
from django.http import HttpResponse
def show_result(request):
title = request.POST['title']
slug = request.POST['slug']
return HttpResponse(title + ' ' + slug)
Переделайте форму поиска на метод
POST и добавьте
{% csrf_token %}.
Прочитайте данные формы из
request.POST и выведите их.
Расскажите, зачем нужен CSRF-токен в POST-форме.