在url模式中提升Http404

Ril*_*ins 4 python django django-urls

我试图覆盖django-profiles中的url来引发404而不是传递给视图.

我正在寻找以下内容:

url(r'^profiles/$', lamdba x: raise Http404)
Run Code Online (Sandbox Code Playgroud)

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

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

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

Raf*_*fid 10

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')}),
)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 您的解决方案可以使用 `django.http.Http404` 异常而不是通用的 `Exception` 来改进 (2认同)