我想在我的Django项目中捕获所有URL ...
它工作正常,但现在我不能去我的/ admin和/博客页面..任何想法我怎么能这样做?..
我的urls.py
url(r'^admin/', include(admin.site.urls)),
(r'^blog/$', 'apps.blog.views.index'),
(r'^([a-zA-Z0-9\-\_]*)', 'apps.review.views.show_search'),
答案 0 :(得分:2)
您无需使用RedirectView手动处理此问题。您可能需要将CommonMiddleware添加到MIDDLEWARE_CLASSES设置(如果它尚未存在)。 (将'django.middleware.common.CommonMiddleware'插入该列表或元组中)。它通常接近该声明的顶部。它的文档在这里:
https://docs.djangoproject.com/en/1.5/ref/middleware/#django.middleware.common.CommonMiddleware
您还需要确保APPEND_SLASH在您的设置中设置为True。
此外,你的最后一个模式很可能匹配任何东西,我怀疑这可能是你问题的真正罪魁祸首。没有尾部斜杠的URL必须无法匹配任何模式,以便它自动重定向到每个中间件的尾部斜杠。我认为您可以通过将/ $附加到该模式来修复最后的URL模式
答案 1 :(得分:0)
管理员和博客网址包含尾随斜杠,即/admin/
和/blog/
。带有斜杠的网址应该可以正常工作。
如果您想让网址在没有斜线的情况下工作,您可以添加/admin
和/blog
的条目,并使用RedirectView
重定向。