Как обработать катастрофическую ошибку внутри метода clean () формы Django? - PullRequest
2 голосов
/ 10 июня 2011

Обычный способ обработки ошибок в clean () - вызывать формы. ValidationError с соответствующим сообщением, и форма будет повторно отображаться с этим сообщением, и пользователь может повторить попытку.

Но что еслиВ clean () обнаружена ошибка, с которой пользователь не может восстановиться, например, ссылка на базу данных перестает работать или отсутствует критический системный файл.В этом случае я не хочу просто заново отображать форму, потому что пользователь ничего не может сделать;если они снова отправят форму, они, скорее всего, просто столкнутся с той же ошибкой.

Перенаправление на страницу с ошибкой было бы лучшим способом справиться с такой ситуацией.Могу ли я сделать это с помощью clean ()?

1 Ответ

1 голос
/ 10 июня 2011

Нет, потому что это не то место, к которому относится логика - эта логика, вероятно, принадлежит вам, если вы хотите указать это самостоятельно.

На практике подобные вещи, вероятно, приведут к тому, что ваш код выдаст ошибку 500 , что вам и нужно.Просто убедитесь, что ваша страница ошибки 500 аккуратно собрана (есть несколько интересных мыслей по этому поводу на Think Vitamin ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...