所以我有一个小问题,我无法真正找到解决方案。
我想将r'^blogg/
表单上的所有链接重定向到r'^blog/'
。我认为有一个类似于这篇文章here中接受的答案的解决方案,但它并没有那么好用。请注意,博客应用程序有许多子网址模式,因此像RedirectView.as_view(url="/blog/")
这样的解决方案无效。
在我的主要urls.py
urlpatterns = patterns('',
url(r'^blogg/', RedirectView.as_view(pattern_name="blog")),
url(r'^blog/', include("blog.urls", namespace="blog")),
上述解决方案为blogg
的所有子网址返回HTTP 410(Gone)。我怀疑这是由于url
中缺少RedirectView.as_view()
参数。
提前感谢所有答案!
答案 0 :(得分:2)
您将无法在urls.py中完全执行此操作。但是一个简单的视图函数可以工作:
url(r'^blogg/(?P<rest>.+)$', views.redirect_prefix),
from django.shortcuts import redirect
def redirect_prefix(request, rest):
return redirect('/blog/{}'.format(rest))
答案 1 :(得分:1)
怎么样?
urlpatterns = patterns('',
url(r'^blogg/',include("blog.urls", namespace="ignoreme") ),
url(r'^blog/', include("blog.urls", namespace="blog")),
它们都应该从url中删除第一部分(blog /或blogg /),然后平等地管理其余部分。如果您将使用{% url "blog:this_view" %}
,那么在下一页上,您的客户将会在博客/部分上