在Wagtail中为Page对象添加index.FilterField?

问题描述 投票:0回答:1

我需要在 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

django wagtail
1个回答
0
投票

找到解决方案:

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)
© www.soinside.com 2019 - 2024. All rights reserved.