Theo số documentation, điều này khá đơn giản: tôi chỉ cần xác định handler404
. Hiện tại tôi đang làm, trong top urls.py
:Làm thế nào để thiết lập đúng cách handler404 tùy chỉnh trong django?
urlpatterns = [
...
]
handler404 = 'myapp.views.handle_page_not_found'
Ứng dụng này được cài đặt. Quan điểm tương ứng chỉ là (cho lúc này tôi chỉ muốn chuyển hướng đến trang web trong trường hợp của 404):
def handle_page_not_found(request):
return redirect('homepage')
Nhưng điều này không có tác dụng: tiêu chuẩn (debug) 404
trang được hiển thị.
Các tài liệu là một chút mơ hồ:
- nơi nên
handler404
được xác định? Tài liệu nói trong sốURLconf
nhưng, chính xác ở đâu? Tôi có nhiều ứng dụng, mỗi ứng dụng cóurls.py
khác nhau. Tôi có thể đặt nó vào bất kỳ trong số đó không? Ở đầu trangURLconf
? Tại sao? Tài liệu này ở đâu? - điều gì sẽ được xử lý bởi trình xử lý này? Nó sẽ bắt được
django.http.Http404
,django.http.HttpResponseNotFound
,django.http.HttpResponse
(vớistatus=404
)?
Có gì 'DEBUG' trong cài đặt của bạn? Nếu đó là 'True', bạn có thể đổi nó thành' False' và thấy không? –
@ShangWang: cảm ơn! Thật vậy, đặt nó thành 'False' giải quyết vấn đề. Đây không phải là tài liệu, afaik. – dangonfast
@delavnog - Nó nằm trong [phần báo cáo lỗi] (https://docs.djangoproject.com/en/1.9/howto/error-reporting/#error-reporting) - "Khi DEBUG là Sai, ..." – Sayse