Насколько «страница с неприятными ошибками» для пользователя, Django позволяет вам настроить свои собственные 500,404 и, возможно, другие страницы. общая информация по этому вопросу:
Для использования исключения Http404
в полной мере, вы должны создать
шаблон, который отображается при 404
ошибка повышена Этот шаблон должен
называться 404.html и находится в
верхний уровень вашего дерева шаблонов.
- http://docs.djangoproject.com/en/dev/topics/http/views/
Другим хорошим способом, не таким СУХИМЫМ, как решение tux21b, но, возможно, немного более понятным для одноразового решения, может быть интеллектуальное обнаружение ошибки. Одним из способов является сделать это, даже не потревожив нарушить ограничение - простой запрос должен проверить, собирается ли пользователь сделать что-то незаконное.
okToUpdate=MyModel.objects.filter(parameters=values...).count()
if okToUpdate>0: # an object already exists
errorExists=True
errors={customError:customMessage}
...
if errorExists:
return render_to_response(errors,'customErrorPage.html')
else:
# return whatever you normally would return
Затем вы используете render_to_response для визуализации пользовательской страницы ошибки.
(другой способ - допустить нарушение базы данных, затем перехватить эту ошибку и сделать то же самое ... я предполагаю, что при поиске БД получает немного меньше стресса, чем при обработке исключения, но вам решать, как вы нравится делать вещи).
JB