我对 Django 中的 url.py 有疑问。
在我的应用程序中,我有很多网址,例如:
aaa-2011-bbb
aaa-2011
我想将这些网址重定向到没有年份的新网址。所以我需要从网址中删除年份。可能吗?
我只有这样的静态映射:
(r'^aaa-\d{4}-bbb/$', redirect_to, {'url': '/aaa-bbb/'}),
但我不喜欢为每个带有年份的网址都写这条规则。
请您参考如下方法:
我会继承RedirectView并使用它来支持动态重定向
urls.py 类似
(r'^(?P<aaa>\w+)-\d{4}-(?P<bbb>\w+)/$', MyRedirectView.as_view()),
并且在 views.py
from django.views.generic.base import RedirectView
class MyRedirectView(RedirectView):
permanent = False
query_string = True
def get_redirect_url(self, aaa, bbb):
return '%s-%s' % (aaa, bbb)
这从 urls.py(假设是字符串并从您描述的 url 重定向)并返回由 '%s-%s' % (aaa, bbb)
