Comment puis-je désactiver de Django reinhardt, de la protection csrf dans certains cas seulement?

Je suis en train d'écrire un site en Django où l'Url de l'API sont les mêmes que l'utilisateur face à des Url. Mais j'ai de la difficulté avec les pages qui utilisent des requêtes POST et la protection CSRF. Par exemple, si j'ai une page /foo/add je veux être en mesure d'envoyer des requêtes POST de deux manières:

  1. D'un utilisateur final (authentifiés à l'aide d'un cookie de session) la soumission d'un formulaire. Cela nécessite une protection CSRF.
  2. Comme une API client (authentifiés à l'aide d'une requête HTTP en-tête). Ceci ne fonctionnera pas si la protection CSRF est activé.

J'ai trouvé divers moyens de désactivation CSRF, comme @csrf_exempt, mais tout le désactiver pour l'ensemble de la vue. Est-il possible de l'activer/désactiver les plus fines au niveau? Ou suis-je tout simplement va falloir mettre en place par la protection CSRF à partir de zéro?

  • Avez-vous vérifié protection csrf docs?
  • J'avais lu des bouts de, mais clairement il n'a pas lu tous les Scénarios. Merci!
InformationsquelleAutor lucas | 2012-07-07