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