Python 更改现有项目的url。并重定向到新的url
大家好。我在django有个项目。使用已更改的url 旧网址Python 更改现有项目的url。并重定向到新的url,python,django,Python,Django,大家好。我在django有个项目。使用已更改的url 旧网址 http://domain/knowledge/schulung/agile-testing-for-the-whole-team 改为: http://domain/trainer/schulung/agile-testing-for-the-whole-team 出现的问题是,有些用户已经具有带有/knowledge/的url。在django中,我希望使用旧url输入的每个人都被重定向到新url 尝试以下方法: url(r'^
http://domain/knowledge/schulung/agile-testing-for-the-whole-team
改为:
http://domain/trainer/schulung/agile-testing-for-the-whole-team
出现的问题是,有些用户已经具有带有/knowledge/的url。在django中,我希望使用旧url输入的每个人都被重定向到新url
尝试以下方法:
url(r'^knowledge/', RedirectView.as_view(url='/trainer/')),
这使我想到:
http://domain/trainer/
我需要去:
http://domain/trainer/schulung/agile-testing-for-the-whole-team
有没有办法做到这一点?
谢谢你的阅读 通过覆盖重定向视图并在
get\u redirect\u url
函数中添加代码,可以轻松完成此操作:
一个简单的方法是:
class KnowledgeRedirectView(重定向视图):
def get_redirect_url(self、*args、**kwargs):
有用的\u url\u part=self.request.path.split('/knowledge/')[-1]
返回“/trainer/”+有用的url\u部分
然后,您只需将此基于类的视图与初始url关联:
url(r'^knowledge/',KnowledgeRedirectView.as_view()),
通过覆盖重定向视图并在
get\u redirect\u url
函数中添加代码,可以轻松完成此操作:
一个简单的方法是:
class KnowledgeRedirectView(重定向视图):
def get_redirect_url(self、*args、**kwargs):
有用的\u url\u part=self.request.path.split('/knowledge/')[-1]
返回“/trainer/”+有用的url\u部分
然后,您只需将此基于类的视图与初始url关联:
url(r'^knowledge/',KnowledgeRedirectView.as_view()),
您是否尝试了
url(r'^knowledge/',RedirectView.as_view(url='/trainer/schulung/agile testing for the whole team'))
?您是否可以添加您的旧url模式?它们是由一个slug生成的url,并已通过电子邮件发送到cleintes。您是否尝试了url(r'^knowledge/',RedirectView.as_view)(url='/trainer/schulung/agile testing for the whole team')
?你能添加你的旧url模式吗?它们是由一个slug生成的url,并通过电子邮件发送给cleintes。谢谢。我不能这样想,但我的客户会很高兴的。谢谢。我不能这样想,但我的客户会很高兴的。