在Django模板变量中链接@username

2024-05-08 16:19:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用twitterapi并显示tweets列表。我想把我应用程序中的用户名和标签链接到合适的地方,但我只有一个字符串,其中有一个@和#符号。在

在django模板中,有没有一种方法可以让我说“如果变量包含一个以#开头的单词,就用它括起来”?在

或者我应该使用Javascript来实现呢?在

任何方法都会有帮助。在


Tags: django方法字符串模板应用程序列表链接地方
1条回答
网友
1楼 · 发布于 2024-05-08 16:19:22

我不确定在不创建自己的过滤器的情况下在模板本身内进行处理,但是您可以使用python在控制器中处理它吗?在带有正则表达式的基本形式中:

import re

user_pattern = re.compile('(\s|^)(@)(\w+)(\s|$)')
tweet = 'Hey @pssdbt, thats not what I wanted!'
tweet = user_pattern.sub('\1<a href="http://www.twitter.com/\3">\2\3</a>\4', tweet)

这将导致:

^{pr2}$

同样的方法也适用于hashtags。不过,我认为在javascript中处理这个问题也不会太困难。在

更新/作为自定义筛选器:

根据http://docs.djangoproject.com/en/dev/howto/custom-template-tags/你只需要创建一个名为你的app/templatetags之类的文件/抽搐.py在

在该文件中,添加:

^{3}$

然后在你的模板中,你应该能够使用这样的东西(假设它看起来是这样的):

<ul id="tweets">
    {% for tweet in tweets %}
        <li>{{ tweet | twittify }}</li>
    {% endfor%}
</ul>

我以前从未使用过自定义过滤器,但希望这至少能让你找到正确的方向。在

相关问题 更多 >