Проверка CSRF не удалась. Запрос прерван.Ни одно решение в интернете не работает для меня
В моих формах с тем же токеном я добавляю @csrf_exemp, но так как в логине я использую Django по умолчанию у меня нет вида логина, я поместил токен в каждый шаблон и деактивировал MIDDLEWARE в настройках и ничего не решило проблему также у меня есть хост в порядке, я могу зарегистрироваться, но не войти в систему, ни в админке django это дает мне ту же ошибку. введите описание изображения здесь
{% extends "layout.html" %} {% block content %} {% load static %} {% load crispy_forms_tags %}
<main style="min-height: 100vh">
<section>
<div class="container p-4" style="min-height: 100vh">
<div class="row">
<div class="col-12 col-md-6 offset-md-3">
<div class="card bg-black">
<div class="card-body">
<h2 class="h3">Login</h2>
<form method="post">
{% csrf_token %} {{ form | crispy }}
<a href="{% url 'main' %}">Home</a>
|
<a href="{% url 'sign_up' %}">Sign Up</a>
<input type="submit" class="btn btn-success" value="login" />
</form>
</div>
</div>
</div>
</div>
</div>
</section>
</main>
{%endblock%}
Вам необходимо установить это значение на ваше settings.py
или .env
:
ALLOWED_HOSTS = ['chgeimsprueba.herokuapp.com']
CSRF_TRUSTED_ORIGINS = ['chgeimsprueba.herokuapp.com']
Проверьте, не сделал ли я опечатку, получить их из вашего скриншота было не так просто :)
Поскольку Heroku автоматически переводит https запросы в http, прежде чем они достигнут вашего приложения Django, вам нужно настроить Django на разрешение POST запросов с другой схемы ( начиная с Django 4.0), добавив это в settings.py
:
CSRF_TRUSTED_ORIGINS = ['https://chgeimsprueba.herokuapp.com']
Обязательно включите схему https://
!