Postman - Запрещено (CSRF-токен отсутствует или неверен.)

У меня возникли проблемы с началом работы с postman - я использовал его раньше с Spring, но это мой первый опыт работы с Django.

У меня есть рабочий веб-сайт, все URL работают нормально. Когда я отправляю запрос post в postman на страницу, которая имеет csrftoken, я вижу токен в разделе cookies в результатах, но получаю следующую ошибку в выводе сервера:

Forbidden (CSRF token missing or incorrect.): /contact/

У меня есть токен в разделе headers

Я попробовал довольно много различных решений из stack overflow, например, добавить:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    ...
CSRF_COOKIE_SECURE=False#I am over the localhost with http

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ),

Вот как выглядит вид

def contact(request):
"""Renders the contact page."""
assert isinstance(request, HttpRequest)

if request.method == 'GET':
    form = ContactForm()
else:
    form = ContactForm(request.POST)
    if form.is_valid():

        ... sending email ...

        return redirect('contact')
    return HttpResponse(status=303)
return render(
    request,
    'app/contact.html',
    {
        'title':'Contact Us',
        'year':datetime.now().year,
        'form': form,
    }
)

вы можете получить токен csrf в html, имея это в шаблоне django jinja

{{csrf_token}}

Отрендерите страницу, и у вас будет это значение. Затем используйте это значение как часть данных вашего POST-запроса:

'csrfmiddlewaretoken' : <csrf_token_value>
Вернуться на верх