#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: //’ перед доменом. Итак, вы могли бы использовать любой из этих двух вариантов:
- При сохранении
Site
объектов убедитесь, чтоdomain
атрибут начинается либо с ‘http: //’, либо с ‘https: //’ - Вы можете это жестко закодировать:
new_url = 'http://{}/article/{}'.format(domain, article_id)
но вам нужно было бы заранее узнать, является ли это http или https