2010-02-22 2 views
5

Мы разрабатываем проект с несколькими приложениями, использующими Django. Он разделяет базу данных, но у нее есть несколько приложений, предназначенных для разных очень разных пользователей. Грубо, администраторы и конечные пользователи. Пользовательский интерфейс каждого приложения сильно отличается. Мне нужно создать страницу ошибки 404, но кажется, что я могу только создать ее для всего проекта. Я хотел бы создать различные 404 шаблонов и показать их в зависимости от приложения (URL), которое запрашивает пользователь ...Различные 404 страницы в зависимости от приложения в Django

Для общего, явно недействительного URL-адреса это просто, но в коде есть другие способы исключений запуска, например, звонков get_object_or_404.

Кто-нибудь знает, как это сделать?

ответ

4

Не совсем верно, что вы можете создать только одну 404 страницу для всего приложения. The documentation объясняет, как вы можете создать конкретный вид обработчика 404, который, конечно же, может посмотреть значение request.path, чтобы узнать, какой URL-адрес был запрошен и отобразить соответствующий шаблон.

+1

Есть ли способ сделать это сухим способом, возможно, обнаружив приставку URL приложения во время выполнения? – acjay

4

Write a 404 view, установив handler404, а не только шаблон. В этой точке зрения попытайтесь понять из URL-адреса, который вы должны показать, и сделать это.

+0

Спасибо! Отличный ответ! – Khelben

+0

Быстрое примечание: обработчик 404 должен находиться в вашем URLconf для работы. – guival

Смежные вопросы