我需要在 Wagtail 中实现特定于语言的搜索,所以我修改了默认的
search/views.py
,如下所示:
def search(request):
search_query = request.GET.get("query", None)
page = request.GET.get("page", 1)
language = request.LANGUAGE_CODE
if search_query:
search_results = Page.objects.live().filter(locale__language_code=language).search(search_query)
结果是一条错误消息:
Please add index.FilterField('language_code') to Page.search_fields
将
index.FilterField('language_code')
添加到从 Page
派生的类中不起作用 - 那么我如何将该过滤器字段索引添加到 wagtailcore.Page
?
找到解决方案:
def search(request):
search_query = request.GET.get("query", None)
page = request.GET.get("page", 1)
current_locale = Locale.objects.get(language_code=request.LANGUAGE_CODE)
# Search
if search_query:
search_results = Page.objects.live().filter(locale=current_locale).search(search_query)