2010-02-22 22 views
5

Rozwijamy projekt z kilkoma aplikacjami wykorzystującymi Django. Dzieli się z bazą danych, ale ma kilka aplikacji skierowanych do różnych bardzo różnych użytkowników. Z grubsza administratorzy i użytkownicy końcowi. Interfejs użytkownika każdej aplikacji jest bardzo różny. Potrzebuję utworzyć stronę błędu 404, ale wydaje mi się, że mogę ją utworzyć tylko dla całego projektu. Chciałbym stworzyć różne szablony 404 i móc je wyświetlać w zależności od aplikacji (URL), o które prosi użytkownik ...Różne 404 strony w zależności od aplikacji w Django

Ogólnie, wyraźnie nieprawidłowy adres URL jest łatwy, ale w kodzie są inne sposoby wyjątków uruchamiania, na przykład połączeń get_object_or_404.

Ktoś wie, jak to zrobić?

Odpowiedz

4

To wcale nie prawda, że ​​można utworzyć tylko jedną stronę 404 dla całej aplikacji. The documentation wyjaśnia, w jaki sposób można utworzyć konkretny widok obsługi klienta 404, który oczywiście może przyjrzeć się wartości adresu URL, którego zażądano i wyrenderować odpowiedni szablon.

+1

Czy można to zrobić w SUCHY sposób, np. Wykrywając przedrostek adresu URL aplikacji w środowisku wykonawczym? – acjay

4

Write a 404 view przez ustawienie handler404, a nie tylko szablonu. W tym widoku spróbuj dowiedzieć się z adresu URL, który 404 powinieneś pokazać i wyrenderuj.

+0

Dzięki! Świetna odpowiedź! – Khelben

+0

Szybka uwaga: handler404 musi działać w twoim URLconf. – guival

Powiązane problemy