Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改现有项目的url。并重定向到新的url_Python_Django - Fatal编程技术网

Python 更改现有项目的url。并重定向到新的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'^

大家好。我在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'^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。谢谢。我不能这样想,但我的客户会很高兴的。谢谢。我不能这样想,但我的客户会很高兴的。