Я пытаюсь выделить искомый запрос на странице результатов поиска в шаблоне Django. Но он не работает
Вот мой views.py
class SearchResultsView(ListView):
model = Challenges
template_name = 'mainapp/search_results.html'
def get_queryset(self):
query = self.request.GET.get('q')
object_list = Challenges.objects.filter(
Q(title__icontains=query) | Q(description__icontains=query) |
Q(challenge_summary__icontains=query) | Q(offered_by__icontains=query)
)
return object_list
мой Django шаблон searched_results.html
{% load template_filters %}
<div class="row">
{% for object in object_list %}
<div class="col-12 mx-auto">
<h3><a href="{{ object.get_absolute_url }}">{{object.title|highlight_search:query}}</a></h3>
<p><a href="{{ object.get_absolute_url }}">{{object.challenge_summary|highlight_search:query}}</a></p>
<hr>
</div>
{% endfor %}
и мой template_filters.py
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter
def highlight_search(text, search):
highlighted = text.replace(search, '<span class="highlight">{}</span>'.format(search)
return mark_safe(highlighted)