Изменить URL-адрес существующего проекта. и перенаправить на новый URL - PullRequest
0 голосов
/ 31 января 2020

Все. У меня есть проект в django. С измененным URL-адресом

старый URL-адрес

http://domain/knowledge/schulung/agile-testing-for-the-whole-team

изменен на:

http://domain/trainer/schulung/agile-testing-for-the-whole-team

возникает проблема, что есть пользователи, которые уже имеют URL-адрес с / знание / , В django я хочу, чтобы все, кто входит со старым URL, были перенаправлены на новый URL.

попробуйте этот метод:

url(r'^knowledge/', RedirectView.as_view(url='/trainer/')),

это приведет меня к:

http://domain/trainer/

Мне нужно go:

http://domain/trainer/schulung/agile-testing-for-the-whole-team

Есть ли способ сделать это? Спасибо за чтение.

1 Ответ

2 голосов
/ 31 января 2020

Это можно легко сделать, переопределив RedirectView и добавив код в функцию get_redirect_url:

Простой способ сделать это будет:

class KnowledgeRedirectView(RedirectView):
    def get_redirect_url(self, *args, **kwargs): 
        useful_url_part = self.request.path.split('/knowledge/')[-1]
        return '/trainer/' + useful_url_part

Тогда вы просто связать это представление на основе классов с вашим начальным URL:

url(r'^knowledge/', KnowledgeRedirectView.as_view()),

RedirectView на Django документы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...