2009-07-22 37 views
6

Tôi đang sẵn sàng triển khai ứng dụng Django đầu tiên của mình và đang đánh một chút rào cản. Mẫu cơ sở của tôi dựa vào việc tôi truyền vào đối tượng phiên để nó có thể đọc tên người dùng hiện đang đăng nhập. Đây không phải là vấn đề khi tôi kiểm soát mã đang gọi mẫu.Thực thi mã cho trang tùy chỉnh Django 404

Tuy nhiên, như một phần của việc ứng dụng này sẵn sàng để được triển khai, tôi cần tạo trang 404.html. Tôi đã mở rộng mẫu cơ sở của mình giống như tôi đã thực hiện với các trang khác của mình, nhưng tôi không thấy một cách để truyền vào đối tượng phiên để tôi có thể sử dụng nó. Có cách nào để Django gọi một phương thức tùy chỉnh để hiển thị 404 của bạn thay vì chỉ hiển thị 404.html cho bạn?

Trả lời

11

Bạn cần ghi đè trình xử lý chế độ xem mặc định cho lỗi 404. Đây là tài liệu hướng dẫn về cách tạo riêng chức năng xem 404 tuỳ chỉnh của bạn:

http://docs.djangoproject.com/en/dev/topics/http/views/#customizing-error-views

+7

Chỉ cần lưu ý cho những người khác: Bạn cần xác định 'handler404' trong url urls.py trong thư mục gốc của dự án, chứ không phải trong một trong các ứng dụng của bạn. –

+2

Nó phải nằm trong tệp 'settings.ROOT_URLCONF' trỏ tới (thường nằm trong thư mục gốc của dự án của bạn, nhưng không phải là ...) – thebjorn

+0

Tôi tìm thấy câu trả lời này vì hướng dẫn đó không có ý nghĩa tôi. Dòng handler404 có nằm trong danh sách url url của urls.py không? Cú pháp của nó có ý nghĩa gì? – AlanSE

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