Django模板中的绝对URL

时间:2011-07-01 21:14:17

标签: django templates

我刚刚开始使用Django所以我的排名可能是愚蠢的:)

我的模型中有一个指向其他网站的网址(TextField,“othersite.com”)。我正试图在模板中显示它<a href="{{ article.url }}" > 但棘手的Django给了我<a href="http://mysite.com/articles/othersite.com" >

  1. 如何获取<a href="othersite.com" >
  2. 对不起我的语言,如果有任何错误:)

2 个答案:

答案 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/