在 Wagtail 中同时搜索页面和自定义模型

菜鸟

我犯了一个错误 - 在我们的应用程序中实现了一些模型作为普通 Django 模型(但可索引)而不是 Page 模型。

现在客户想要看到一个统一的搜索结果页面(所以分面搜索是不够的)......所以我完全被卡住了。

我们正在使用 PostgreSQL 后端。s.search() 函数需要一个模型或查询集;并且您不能组合 PostgresSearchResults 查询集。如果我将 2 个结果集转换为列表并将它们组合起来,我将失去结果的相关性。

有任何想法吗?

丹斯温 |

为了呈现非同类搜索结果,您可以使用:

from itertools import chain

假设您已经搜索了页面、文档、图像,并且还有一些其他结果 - 您可以这样做(包括分页,因为您也需要它):

page_results = SOME PAGE RESULTS
doc_results = docs_to_search.search(search_query, order_by_relevance=False)
img_results = images_to_search.search(search_query, order_by_relevance=False)
other_search_results = SOME RESULTS FROM SEARCHING MODELS

all_results = list(chain(other_search_results, page_results, img_results, doc_results))

# Pagination
paginator = Paginator(all_results, items_per_page, orphans=num_orphans)
try:
    results = paginator.page(page)
except PageNotAnInteger:
    results = paginator.page(1)
except EmptyPage:
    results = paginator.page(paginator.num_pages)

然后results从您的视图中返回您的并在模板中呈现{% for result in results %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

访问模板文件Wagtail中的子页面模型属性

来自分类Dev

以编程方式更新Wagtail中的编辑界面

来自分类Dev

流场中的Wagtail SnippetChooserBlock

来自分类Dev

在Django Wagtail BaseSettings中添加MultiFieldPanel

来自分类Dev

如何集成Django Import Export和Wagtail?

来自分类Dev

获取Wagtail页面模型的随机对象,而不是当前对象

来自分类Dev

在Wagtail中以编程方式创建重定向

来自分类Dev

如何将自定义的左链接模型添加到Wagtail管理页面

来自分类Dev

在Wagtail页面上禁用CSRF验证

来自分类Dev

在wagtail管理主页上自定义“等待审阅的页面”面板

来自分类Dev

如何在Wagtail中自定义图像选择器?

来自分类Dev

链接到Wagtail CMS中的特定页面

来自分类Dev

流场中的Wagtail SnippetChooserBlock

来自分类Dev

使用 Wagtail 在博客文章中显示字数

来自分类Dev

在 Wagtail 中迁移数据

来自分类Dev

Wagtail 自定义文档模型

来自分类Dev

查询 Django Wagtail 文档模型

来自分类Dev

Wagtail 中的通配符子域

来自分类Dev

将多个文档上传到 Wagtail 页面

来自分类Dev

直接链接到 Wagtail 模型管理视图

来自分类Dev

Wagtail:无法导入名称页面

来自分类Dev

在 Wagtail 中隐藏 `***Block`

来自分类Dev

自定义 wagtail 页面模型保存方法调用两次

来自分类Dev

Wagtail 渲染索引页面中的任何路径

来自分类Dev

Wagtail:按外键过滤页面

来自分类Dev

在 Wagtail 中自定义管理 ui-widget

来自分类Dev

如何在所有其他 wagtail 页面上导入 Wagtail 页面

来自分类Dev

Django 网址与 wagtail 页面网址

来自分类Dev

Wagtail页面模型:外键实体+多个参数