Можно ли поднять BadRequest
как исключение в django?
Я видел, что вы можете поднять 404 [1].
Используйте случай: в вспомогательном методе я загружаю json из request.GET. Если json был вырезан, так как браузер (IE) разрезал URL-адрес, я хотел бы поднять соответствующее исключение.
Исключение BadRequest выглядит подходящим, но до сих пор в django такого исключения нет.
В 1.6 есть исключение SuspiciousOperation. Но это не совпадает в моем случае, поскольку это не связано с безопасностью.
Конечно, я мог бы попробовать try..except вокруг моего вспомогательного метода в методе view, но это не DRY.
У кого-то есть решение, в котором мне не нужно try..exception вокруг каждого вызова моего вспомогательного метода?
[1] https://docs.djangoproject.com/en/1.6/ref/exceptions/#django.core.urlresolvers.Resolver404
Обновление
Пример кода:
def my_view(request):
data=load_data_from_request(request) # I don't want a try..except here: DRY
process_data(data)
return django.http.HttpResponse('Thank you')
def load_data_from_request(request):
try:
data_raw=json.loads(...)
except ValueError, exc:
raise BadRequest(exc)
...
return data