基于部分url模式的Django重定向

2024-10-03 00:17:13 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有个小问题,我真的找不到解决的办法。在

我想将r'^blogg/上的所有链接重定向到r'^blog/'。我认为有一个解决方案类似于本文here中接受的答案,但它并不那么有效。请注意,blog应用程序有许多子url模式,因此RedirectView.as_view(url="/blog/")这样的解决方案行不通。在

在我的主网址.py在

urlpatterns = patterns('',
url(r'^blogg/', RedirectView.as_view(pattern_name="blog")),
url(r'^blog/', include("blog.urls", namespace="blog")),

上面的解决方案为blogg的所有子url返回http410(go)。我怀疑这是因为RedirectView.as_view()中缺少url参数。在

提前感谢所有的回答!在


Tags: 答案view应用程序urlhere链接as模式
2条回答

怎么办

urlpatterns = patterns('',
url(r'^blogg/',include("blog.urls", namespace="ignoreme") ),
url(r'^blog/', include("blog.urls", namespace="blog")),

两者都应该从url中去掉第一部分(blog/或blog/),然后平等地管理其余部分。如果您使用{% url "blog:this_view" %},那么在下一页中,您的客户无论如何都将出现在blog/part上

你不可能完全在网址.py. 但一个简单的视图功能可以工作:

url(r'^blogg/(?P<rest>.+)$', views.redirect_prefix),


from django.shortcuts import redirect

def redirect_prefix(request, rest):
    return redirect('/blog/{}'.format(rest))

相关问题 更多 >