оператор if в html (на основе поискового запроса) - PullRequest
1 голос
/ 11 февраля 2020

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

1 Ответ

0 голосов
/ 11 февраля 2020
def index(request):    
    item_list = Item.objects.none()
    context = {
        'items': item_list
    }
    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)
    else:
        return render(request, 'bikes.html', context)

Можете ли вы попробовать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...