Как мне настроить URL в RedirectView

#django

#django

Вопрос:

Я использую 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:

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

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