Как мне настроить URL в RedirectView - PullRequest
0 голосов
/ 21 марта 2019

Я использую Django 1.5, пытаюсь захватить параметр из URL, затем использовать этот параметр, чтобы запросить идентификатор статьи и перенаправить пользователя к этой статье.

Могу ли я не указать новый URL в url.py и сделать что-то подобное ниже? Но он просто добавляет URL, который я хочу использовать, в конец текущего URL

url.py

url(r'^external/(?P<external_id>\d+)/$', myView.as_view(), name='external-view')

views.py

class MyView(RedirectView):
    def get_redirect_url(self, **kwargs):
        external_id = kwargs['external_id']
        article_id = Article.objects.get(external_id=external_id).id
        domain = Site.objects.get_current().domain
        new_url = '{}/article/{}'.format(domain, article_id)
        return new_url

1 Ответ

2 голосов
/ 21 марта 2019

Для того, чтобы внешний перенаправление работало, вы должны включить 'http://' или' https://' перед доменом. Таким образом, вы можете сделать любой из этих двух вариантов:

  1. При сохранении Site объектов убедитесь, что атрибут domain начинается с 'http://' или' https://'
  2. Вы можете жестко закодировать его: new_url = 'http://{}/article/{}'.format(domain, article_id), но вам необходимо заранее узнать, http это или https
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...