2010-02-22 21 views
5

Chúng tôi đang phát triển một dự án với một số ứng dụng sử dụng Django. Nó chia sẻ cơ sở dữ liệu, nhưng nó có một số ứng dụng nhắm mục tiêu người dùng khác nhau rất khác nhau. Tổng cộng, quản trị viên và người dùng cuối cùng. Giao diện người dùng của mỗi ứng dụng rất khác nhau. Tôi cần tạo trang lỗi 404, nhưng có vẻ như tôi chỉ có thể tạo một trang cho tất cả dự án. Tôi muốn tạo các mẫu 404 khác nhau và có thể hiển thị chúng tùy thuộc vào ứng dụng (URL) mà người dùng đang yêu cầu ...Các trang 404 khác nhau tùy thuộc vào ứng dụng trong Django

Nói chung, URL không hợp lệ rõ ràng thật dễ dàng, nhưng trong mã có các cách khác giới thiệu các ngoại lệ, chẳng hạn như get_object_or_404 cuộc gọi.

Có ai biết cách làm điều đó không?

Trả lời

4

Không hoàn toàn đúng là bạn chỉ có thể tạo một trang 404 duy nhất cho toàn bộ ứng dụng. The documentation giải thích cách bạn có thể tạo chế độ xem trình xử lý 404 cụ thể, tất nhiên có thể xem giá trị request.path để xem URL nào được yêu cầu và hiển thị mẫu có liên quan.

+1

Có cách nào để thực hiện việc này theo cách DRY, có lẽ bằng cách phát hiện tiền tố URL của ứng dụng khi chạy? – acjay

4

Write a 404 view bằng cách đặt handler404 và không chỉ là mẫu. Trong chế độ xem đó, hãy cố gắng tìm từ url mà bạn sẽ hiển thị và hiển thị nó.

+0

Cảm ơn! Câu trả lời chính xác! – Khelben

+0

Lưu ý nhanh: trình xử lý404 phải nằm trong URLconf của bạn để hoạt động. – guival

Các vấn đề liên quan