Django-href重复目标

时间:2019-03-29 00:24:58

标签: html django hyperlink

我在第一个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浏览器,也经过测试,已部署在服务器而非本地主机上。

1 个答案:

答案 0 :(得分:3)

这与Django无关。您的链接不是以方案(即httphttps)开头,因此您的浏览器认为127.0.0.1是路径,而不是主机名。在baseURL前面加上http://,或者简单地在//之前。例如:

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