我正在尝试覆盖django-profiles中的url以引发404而不是传递给视图。
我正在寻找以下内容:
url(r'^profiles/$', lamdba x: raise Http404)
但上述方法无效。这种事情有可能吗?
我知道我可以写一个引发404的新视图,但如果我可以直接在url模式中执行它,我宁愿不这样做。
编辑:具体来说,我使用上面的示例得到invalid syntax (urls.py, line 29)
。
答案 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),
)