我在第一个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浏览器,也经过测试,已部署在服务器而非本地主机上。
答案 0 :(得分:3)
这与Django无关。您的链接不是以方案(即http
或https
)开头,因此您的浏览器认为127.0.0.1
是路径,而不是主机名。在baseURL
前面加上http://
,或者简单地在//
之前。例如:
return '<p style="font-style:italic;"> <a href="//' + baseURL + str(xyz.pk) + '">Some text</a></p>'