В Твиттере есть функция, называемая хэштегами, которая извлекает теги из сообщений.
Например, в
"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 %}
Но это, конечно, показывает только обычное сообщение, без ссылок.
Я хочу, чтобы каждый #tag
в message
был заменен ссылкой, передающей имя тега в строке запроса в представление с именем by_tag
.
Принадлежит ли <a href="...">
s к views.py
? Тогда что, если позже я решу, что это AJAX-ссылка? Хорошо, похоже, это относится к шаблонам. Но как мне сделать такую сложную замену с маршрутизацией из шаблона? Должен ли я написать собственный фильтр шаблона?
Просто для справки, Tweet
содержит свои Tag
s в поле с именем tags
.