mon dans mon modèle Alors, lorsque j'ouvre la page d'accueil dans le navigateur et que vous voyez le code source et il n'y a pas de jeton CSRF! p> Qu'est-ce que j'ai manqué? P> P> update em> strud>: Ceci a aidé. p> p> vues.py code>:
index.html code>: p>
3 Réponses :
Vous devez utiliser DemandeContext pour utiliser le middleware CSRF:
from django.template import RequestContext # In your view: return render_to_response('index.html' {'files':os.listdir('/home/username/public_html/posters') }, context_instance=RequestContext(request))
Merci, cela me conduisait à Noix. Heureux c'était quelque chose de simple.
Une fois que vous êtes sur 1.3 (que vous devriez être), le Render Raccourci offre une manière plus compacte de faire IT:
from django.shortcuts import render def some_view(request): return render(request, 'template.html', context_dict)
S'il vous plaît voir l'extrait de Django Document.
la méthode de décorateur
Plutôt que d'ajouter CSRFViewMidDleware en tant que protection générale, vous pouvez utiliser le décorateur CSRF_Protect, qui présente exactement la même fonctionnalité, sur des vues particulières qui ont besoin de la protection. Il doit être utilisé à la fois sur des vues qui insérent le jeton CSRF dans la sortie et sur ceux qui acceptent les données post-formulaire. strong> (Celles-ci sont souvent la même fonction de vue, mais pas toujours). Il est utilisé comme ceci: p> Utilisation du décorateur n'est pas recommandé par lui-même strong>, car si vous oubliez de l'utiliser, vous aurez un trou de sécurité. La stratégie de «ceinture et d'accolades» d'utiliser les deux va bien et encourra des frais généraux minimaux. P> p>