La fonction {{csrf_token}} de Django ne génère que la valeur du jeton, sans le balisage d'entrée masqué
Pourquoi n'est-ce pas le balisage pour le champ caché montrant quand j'utilise {{ csrf_token }}
?
Voici un extrait de mon template:
<form action="." method="post">
{{ csrf_token }}
Je m'attends à quelque chose comme ce qui doit être généré:
<form action="." method="post">
<input type="hidden" name="csrfmiddlewaretoken" value="0c90dab91e22382cbaa5ef375f709167">
Mais au lieu de cela, c'est le code HTML qui est généré:
<form action="." method="post">
0c90dab91e22382cbaa5ef375f709167
Je l'ai fait plusieurs fois et ça fonctionne très bien dans mes autres projets, mais je ne sais pas ce que j'ai raté ce moment.
Mon views.py fichier ressemble à ceci:
from django.shortcuts import render_to_response
from django.template import RequestContext
def home(request):
return render_to_response('home.html',
context_instance=RequestContext(request))
Comme vous pouvez le voir, je suis en utilisant RequestContext. Mon middleware classes sont définies comme suit dans le settings.py fichier:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
Je suis donc à l'aide de django.middleware.csrf.CsrfViewMiddleware. Aussi, je suis sur Django 1.3.0. Des idées?
source d'informationauteur Mike M. Lin
Vous devez vous connecter pour publier un commentaire.
Vous avez à l'utiliser comme étiquette
{% csrf_token %}
non pas comme une variable passée par votre point de vue{{csrf_token}}
- Je utiliser la prochaine dans mes modèles pour résoudre votre problème: