Python html中的if语句(基于搜索查询)
我有一个显示一些内容的页面,但我想在serach查询后删除这些内容并显示结果。我认为应该有两个if语句,一个用于当前内容(如果不搜索显示此内容),另一个用于(如果搜索显示其他内容并隐藏以前的内容) views.pyPython 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__
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
视图中,您总是返回项目。每种情况都是如此。您的意思是:如果查询参数中有一个页面,那么返回该页面的项目。如果查询参数中没有页面,则返回第一页。最后,如果有空页,返回最后一页。总之,你总是在退货。