2011-12-14 23 views
4

我試圖重寫django-profiles中的一個url來提高404而不是傳遞給視圖。在URL模式中提高Http404

我要找的線沿線的東西:

url(r'^profiles/$', lamdba x: raise Http404) 

但上面不起作用。這種事情可能嗎?

我知道我可以編寫一個引發404的新視圖,但我寧願不能直接在url模式下執行它。

編輯:具體來說,我得到invalid syntax (urls.py, line 29)與上面的例子。

回答

2

工作示例..

在你的urls.py添加:

from django.views.defaults import page_not_found 

urlpatterns = patterns('', 
    url(r'^profiles/$', page_not_found), 
) 
5

Django 1.9開始,page_not_found視圖現在 「接受第二個參數,觸發錯誤例外。」所以上面Christoffer提出的解決方案需要一些小的改變:

from django.views.defaults import page_not_found 

urlpatterns = patterns('', 
    url(r'^profiles/$', page_not_found, {'exception': Exception('Not Found')}), 
) 

希望這有助於。

+1

您可以使用`django.http.Http404`異常來改善您的解決方案,而不是通用的`Exception` – mrnfrancesco 2017-06-14 12:08:47