突出显示Django搜索结果

时间:2020-05-13 17:43:03

标签: django web django-models django-views django-templates

这是我的模特

class Acsd(models.Model):
    sequence = models.IntegerField(primary_key=True)
    country = models.CharField(max_length=60, blank=True)
    description = models.CharField(max_length=2000, blank=True) 
    class Meta:     
        verbose_name = 'acsd'
        verbose_name_plural = 'acsd'

这是我的观点

class SearchResultsView(ListView):
    model = Acsd
    template_name = "search.html"
    context_object_name = 'search'
    paginate_by = 25


    def get_queryset(self): 
        query = self.request.GET.get('q')
        object_list = Acsd.objects.filter(
           Q(description__icontains=query)
        )
        return object_list
    def get_context_data(self, **kwargs):
        context = super(SearchResultsView, self).get_context_data(**kwargs)
        context['result_string'] = self.request.GET.get('q')
        return context

这是我的模板

<div class="row">
    {% for acsd in search %}
       <div class="col-md-2 " style="margin-top: 10px;">
         <b>{{acsd.description}}</b>
       </div>
</div>

我想突出显示包含搜索字符串/短语的行。并且还想显示包含line(如果有)的字符串/短语的上一行和下一行。如果我需要更改搜索机制,也请提出建议。

类似Google的东西。如果我们搜索“超级英雄”,结果将使搜索字符串在内容中以粗体显示。

  • enter image description here

0 个答案:

没有答案