如果请求GET数据无效且无法解析,我想从我的django视图函数返回HTTP 400响应。
我该怎么做?似乎没有像404那样的Exception
类:
raise Http404
答案 0 :(得分:41)
答案 1 :(得分:21)
您可以执行以下操作:
from django.core.exceptions import SuspiciousOperation
raise SuspiciousOperation("Invalid request; see documentation for correct paramaters")
SuspiciousOperation映射到https://github.com/django/django/blob/master/django/core/handlers/base.py
第207行的400响应答案 2 :(得分:10)
如果您正在使用Django Rest Framework,您可以通过两种方式在视图中引发400响应:
from rest_framework.exceptions import ValidationError, ParseError
raise ValidationError
# or
raise ParseError
答案 3 :(得分:0)
自 Django 3.2 起,您还可以引发 BadRequest
异常:
from django.core.exceptions import BadRequest
raise BadRequest('Invalid request.')
在某些情况下,这可能比另一个答案中提到的 SuspiciousOperation
更好,因为它不记录安全事件;请参阅doc on exceptions。