Джанго - это двойная цель - PullRequest
1 голос
/ 29 марта 2019

Я столкнулся со странной проблемой в моем первом проекте Django. На мой взгляд, у меня есть функция, которая генерирует ссылку динамически на основе определенных значений формы:

return '<p style="font-style:italic;"> <a href="' + baseURL +  str(xyz.pk)  +  '">Some text</a></p>'

Когда я печатаю вывод в консоли, он показывает правильную ссылку в примере:

<a href="127.0.0.1:8000/xyz/20824305-d4e7-4dbd-992c-7b57bb5e477f">

Я возвращаю результат функции на мой взгляд:

return render(request, 'xyz/xyz.html', {'form':form, 'url_text': generateAccessURLs(request,xyz), 'current_path': current_path })

Но когда я запускаю приложение и открываю его в браузере, целевой URL дублируется. В HTML это выглядит так:

<a href="127.0.0.1:8000/xyz/ea0de6a5-5bcf-4c52-8032-dc865d660a0d">Some text</a>

но когда я нажимаю на ссылку, она открывается

http://127.0.0.1:8000/xyz/20824305-d4e7-4dbd-992c-7b57bb5e477f/127.0.0.1:8000/xyz/ea0de6a5-5bcf-4c52-8032-dc865d660a0d

В моем шаблоне у меня просто так: {{url_text|safe}}

Что я здесь пропускаю?

Браузер: Chrome, также протестированный развернут на сервере, а не на localhost.

1 Ответ

3 голосов
/ 29 марта 2019

Это не имеет ничего общего с Джанго.Ваша ссылка не начинается со схемы (т. Е. http или https), поэтому ваш браузер считает, что 127.0.0.1 - это путь, а не имя хоста.Добавьте ваш baseURL с http:// или просто //.Например:

return '<p style="font-style:italic;"> <a href="//' + baseURL +  str(xyz.pk)  +  '">Some text</a></p>'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...