【发布时间】:2019-09-12 11:51:43
【问题描述】:
我的 Wagtail 模板上有一个有效的搜索表单,可以根据标签查找页面,但由于没有运算符(AND 或 OR),一次只能搜索一个标签。
有人可以告诉我如何调整此代码以允许多个标签搜索吗?
models.py
tag_posts = PostsPage.objects.live().public().order_by('-first_published_at')
if request.GET.get('tag', None):
tags = request.GET.get('tag')
tag_posts = tag_posts.filter(tags__slug__in=[tags])
# Paginate all posts by 2 per page
paginator = Paginator(tag_posts, 2)
# Try to get the ?page=x value
page = request.GET.get("page")
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
context["posts"] = tag_posts
return context
search_page.html
<form role="search" method="get" class="form-search" action="posts" method="get">
<div class="input-group">
<input type="text" class="form-control search-query" name="tag" placeholder="What are you after?" title="Search for:" />
<span class="input-group-btn">
<button type="submit" class="btn btn-default" name="" id="searchsubmit" value="">
<span class="btn btn-default">GO</span>
</button>
</span>
</div>
</form>
【问题讨论】:
标签: python django search tags wagtail