我刚刚开始使用Django所以我的排名可能是愚蠢的:)
我的模型中有一个指向其他网站的网址(TextField,“othersite.com”)。我正试图在模板中显示它<a href="{{ article.url }}" >
但棘手的Django给了我<a href="http://mysite.com/articles/othersite.com" >
<a href="othersite.com" >
?答案 0 :(得分:4)
您的浏览器正在输入其他文本,而不是Django。这种情况发生在没有完整的URL以避免意外行为的情况下。
您可以通过修复数据或修改模板来解决此问题:
<a href="http://{{ article.url }}" >
答案 1 :(得分:0)
如果所有网址都必须是绝对的,则可以使用自定义模板标记和过滤器解决此问题。
@register.filter
@stringfilter
def absoluteurl(url):
if "http" not in url:
return 'http://%s' % url
else:
return url
然后你可以简单地<a href="{{ article.url|absoluteurl }}" >
https://docs.djangoproject.com/en/1.11/howto/custom-template-tags/