在url模式中提升Http404

时间:2011-12-14 23:45:01

标签: python django django-urls

我正在尝试覆盖django-profiles中的url以引发404而不是传递给视图。

我正在寻找以下内容:

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

但上述方法无效。这种事情有可能吗?

我知道我可以写一个引发404的新视图,但如果我可以直接在url模式中执行它,我宁愿不这样做。

编辑:具体来说,我使用上面的示例得到invalid syntax (urls.py, line 29)

3 个答案:

答案 0 :(得分:10)

答案 1 :(得分:9)

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')}),
)

希望这有帮助。

答案 2 :(得分:2)

一个工作实例..

在你的urls.py中添加:

from django.views.defaults import page_not_found

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