Python html中的if语句(基于搜索查询)

Python html中的if语句(基于搜索查询),python,html,django,Python,Html,Django,我有一个显示一些内容的页面,但我想在serach查询后删除这些内容并显示结果。我认为应该有两个if语句,一个用于当前内容(如果不搜索显示此内容),另一个用于(如果搜索显示其他内容并隐藏以前的内容) views.py def HomeView(request): item_list = Item.objects.all() query = request.GET.get('q') if query: item_list = Item.objects.filter(title__

我有一个显示一些内容的页面,但我想在serach查询后删除这些内容并显示结果。我认为应该有两个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)

{%forx放入items%}{{x}{%endfor%}
中,以生成带有结果的HTML。但它可能需要一些HTML来将其格式化为
。阅读文档:我知道这一点,但结果总是可见的,我希望它们只有在我搜索时才可见,然后将所有内容放入当前
中,如果查询:
,并且在没有查询时不在
上下文中生成
项,但是现在上下文根本不显示,但在
HomeView
视图中,您总是返回项目。每种情况都是如此。您的意思是:如果查询参数中有一个页面,那么返回该页面的项目。如果查询参数中没有页面,则返回第一页。最后,如果有空页,返回最后一页。总之,您总是返回items.put
{%for x In items%}{{x}}{%endfor%}
以使HTML与结果平缓化。但它可能需要一些HTML来将其格式化为
。阅读文档:我知道这一点,但结果总是可见的,我希望它们只有在我搜索时才可见,然后将所有内容放入当前
中,如果查询:
,并且在没有查询时不在
上下文中生成
项,但是现在上下文根本不显示,但在
HomeView
视图中,您总是返回项目。每种情况都是如此。您的意思是:如果查询参数中有一个页面,那么返回该页面的项目。如果查询参数中没有页面,则返回第一页。最后,如果有空页,返回最后一页。总之,你总是在退货。