django bootstrap search form
# blogs/views.py
import operator
from django.db.models import Q
class BlogSearchListView(BlogListView):
"""
Display a Blog List page filtered by the search query.
"""
paginate_by = 10
def get_queryset(self):
result = super(BlogSearchListView, self).get_queryset()
query = self.request.GET.get('q')
if query:
query_list = query.split()
result = result.filter(
reduce(operator.and_,
(Q(title__icontains=q) for q in query_list)) |
reduce(operator.and_,
(Q(content__icontains=q) for q in query_list))
)
return result