Есть ли способ заставить непосредственный HttpResponse из метода FormView на основе класса (например, get_initial)?
Есть ли способ заставить немедленный HttpResponse
из метода представления на основе класса?
Например, если есть исключение в то время как в get_initial
или любой другой метод представления мы можем заставить представление, чтобы остановить процесс рендеринга формы отправить HttpResponse
?
1 ответ
Решение
Виды dispatch
Метод - это то, что возвращает HttpResponse. Вы всегда можете вызвать исключение, которое не будет обработано в другом месте, и поймать его там. Это должно просто пузыриться, пока это не добирается там.
Ex.
#place where you want to raise exception
if condition.is_not_met:
raise WoahException
#views.py
class MyFormView(views.FormView):
def dispatch(self, request, *args, **kwargs):
try:
return super(MyFormView, self).dispatch(request, *args, **kwargs)
except WoahException:
return HttpResponse("Woah, there was an exception")