有一个在Twitter的一个功能叫做从邮件中提取标签#标签。
例如,在划分视图与模板之间的责任在Django
"Hey #guys, I love #stackoverflow"
#guys
和#stackoverflow
是可以点击的,并导致自己的查询。
我正在构建一个类似的应用程序进行培训,我不知道何时何地在输出中实际注入链接?
我抓住所有最近的鸣叫:
def index(request):
latest_tweets = Tweet.objects.all().order_by('-pub_date')[:5]
return render_to_response('index.html',
{ 'tweets': latest_tweets },
context_instance=RequestContext(request)
)
并且以块为我呈现:
{% for tweet in tweets %}
<p>{{tweet.message}}</p>
{% endfor %}
但这当然只是表明普通消息,没有链接。
我想在每个message
到#tag
在查询字符串到一个名为by_tag
视图传递标签名称的链接来代替。
是否插入<a href="...">
s属于views.py
?那么,如果我决定以后这是一个AJAX链接?好吧,看起来这属于模板。但我怎么做,从一个模板路由这样一个复杂的更换?我应该写一个自定义模板过滤器吗?
仅供参考,Tweet
包含它的Tag
在一个名为tags
的字段中。
感谢您提供精彩的解释和代码片段。现在我想知道:是否可以将模板中的应用程序链接硬化?例如,在ASP .NET MVC中,而不是像'/ product/create /'那样指定URL,我们调用Url.Route('Product','Create')'它读取路由表并给出控制器和动作名称的URL。这通常在django中完成? (考虑到我希望链接到'name'参数的'by_tag'视图) – 2011-06-14 00:58:59
是的,你可以得到这个功能。如果您想在视图或应用程序逻辑中查找URL,请使用反向函数:(https://docs.djangoproject.com/en/dev/topics/http/urls/#reverse)或者如果您要在模板中使用“url”模板标记实现相同的功能:(https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#url)。如果你不能工作,打开一个新的问题,你将能够得到帮助 – 2011-06-14 01:11:01
这些链接都是我需要的,我发誓我可以找到他们,如果我更难搜索。非常感谢你的帮助! – 2011-06-14 01:12:59