这是我的模特
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的东西。如果我们搜索“超级英雄”,结果将使搜索字符串在内容中以粗体显示。