web-dev-qa-db-fra.com

Comment retourner une réponse HTTP 400 dans Django?

Je souhaite renvoyer une réponse HTTP 400 à partir de ma Django fonction de vue si les données de la requête GET sont invalides et ne peuvent pas être analysées.

Comment puis-je faire cela? Il ne semble pas y avoir de classe Exception correspondante comme pour 404:

raise Http404
53
markmnl

De mon commentaire précédent:

Vous pouvez retourner un HttpResponseBadRequest

En outre, vous pouvez créer une sous-classe Exception telle que Http404 pour avoir votre propre exception Http400.

Cordialement,

43
Ambroise

Vous pouvez faire ce qui suit:

from Django.core.exceptions import SuspiciousOperation
raise SuspiciousOperation("Invalid request; see documentation for correct paramaters")

SuspiciousOperation est associé à une réponse 400 autour de la ligne 207 de https://github.com/Django/django/blob/master/Django/core/handlers/base.py

22
Brian Chapman

Si vous utilisez le cadre de repos Django Rest, vous pouvez générer une réponse 400 dans une vue:

from rest_framework.exceptions import ValidationError, ParseError

raise ValidationError

# or 
raise ParseError
12
rgilligan