Выделение поисковых запросов в шаблоне Django с помощью настраиваемого фильтра - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь выделить искомый запрос на странице результатов поиска в шаблоне 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...