Есть ли способ принудительно подавить 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")

licensed under cc by-sa 3.0 with attribution.