使链接在我的Django TextField中可点击

时间:2018-07-09 10:55:56

标签: javascript python jquery html django

我有一个类似的Textfield:

class Comment(models.Model):
    ...
    comment_text = models.TextField(max_length=650, blank=True, null=True)

当某人在TextField中发布链接时,例如www.stackoverflow.com,我希望它可以被点击(嵌套在<a>标签中)。有什么办法可以使用代码而不使用文本编辑器来做到这一点?

2 个答案:

答案 0 :(得分:7)

您可以为此使用urlize [Django-doc]模板过滤器标签。所以不用写:

{{ some_comment.comment_text }}

您应该写:

{{ some_comment.comment_text|urlize }}

根据文档,我们得到:

  

将文本中的URL和电子邮件地址转换为可点击的链接。

     

此模板标记适用于前缀为http://https://,   或www.。例如,https://goo.gl/aia1t将被转换,但是   goo.gl/aia1t不会。

     

它还支持以原始顶部之一结尾的仅域链接   级别域(.com.edu.gov.int.mil.net和   .org)。例如,djangoproject.com被转换。

     

(..)

     

如果值为"Check out www.djangoproject.com",则输出为   "Check out <a href="http://www.djangoproject.com" rel="nofollow">www.djangoproject.com</a>"

一个相关的模板过滤器是urlizetrunc [Django-doc],其中的链接不仅容易辨认,而且也被截断。例如:

{{ some_comment.comment_text|urlizetrunc:15 }}

在这种情况下,用户看到的URL (当然不是链接本身)被截断为15个字符,因为链接可能很长而且混乱。

答案 1 :(得分:1)

Some other thread

  

Django具有urlize template filter,它将自动检测URL和电子邮件地址,并将它们转换为适当的超链接。

     

这里的文档实际上有点薄,所以我建议还阅读urlize函数源中的文档字符串以获取更多信息。