У меня есть страница, которая отображает некоторый контент, но я хотел бы удалить контент после поискового запроса и отобразить результаты. Я считаю, что должно быть два оператора if, один для текущего контента (если поиск не выполняется, отображающий это), а другой (если поиск отображает другой контент и скрывает предыдущий).
views.py
def HomeView(request):
item_list = Item.objects.all()
query = request.GET.get('q')
if query:
item_list = Item.objects.filter(title__icontains=query)
paginator = Paginator(item_list, 10)
page = request.GET.get('page')
try:
items = paginator.page(page)
except PageNotAnInteger:
items = paginator.page(1)
except EmptyPage:
items = paginator.page(paginator.num_pages)
context = {
'items': items
}
return render(request, "home.html", context)
Что я должен был бы поместить в шаблон html, чтобы заставить это работать?
Сделал что-то подобное, но не работает:
class BikeView(ListView):
model = Item
paginate_by = 10
template_name = "bikes.html"
def search(request):
query = request.GET.get('q')
if query:
item_list = Item.objects.all()
item_list = Item.objects.filter(title__icontains=query)
context = {
'items': item_list
}
return render(request, "bikes.html", context)