Django : erreur `CSRF verification failed` sur mon formulaire

asked 2 months ago261 viewsfr

7

Mon formulaire POST renvoie « Forbidden (403) CSRF verification failed. Request aborted. » Je suis en local.

AI diagnosis

AI-generated. Not an answer — the community below confirms or corrects it. Always verify before relying on it.

asked 2 months ago

1 Answer

4
✓
✓ Accepted answer

Django exige un jeton CSRF sur toutes les requêtes POST. Vérifie :

1. Dans le template, le tag à l'intérieur du <form> :

<form method="post">
  {% csrf_token %}
  ...
</form>

2. La vue utilise bien render(request, ...), qui passe le contexte de requête. 3. Appels JavaScript (fetch) : envoie l'en-tête X-CSRFToken avec la valeur du cookie csrftoken. 4. Django 4+ derrière HTTPS ou un domaine différent : ajoute l'origine dans les réglages :

CSRF_TRUSTED_ORIGINS = ['https://monsite.ht']

Ne désactive pas la protection avec @csrf_exempt pour « faire marcher ». Réserve-le aux webhooks authentifiés par signature.

Sign in to tell others whether this worked.

answered 2 months ago

Sign in and verify your email to post an answer.