gpt4 book ai didi

python - OSCAR_SEARCH_FACETS 用于过滤产品列表

转载 作者:太空狗 更新时间:2023-10-30 00:49:10 25 4
gpt4 key购买 nike

我正在使用 django oscar 开发电子商务网站。列出了产品,我必须应用过滤器(例如年份、价格等)。我们可以将 oscar facet 用于此过滤功能吗?

我已尝试根据 oscar documentation 添加以下内容,但不知道如何让它在我的前端工作和呈现。

OSCAR_SEARCH_FACETS = {
'fields': OrderedDict([
('product_class', {'name': _('Type'), 'field': 'product_class'}),
('rating', {'name': _('Rating'), 'field': 'rating'}),
]),
'queries': OrderedDict([
('price_range',
{
'name': _('Price range'),
'field': 'price',
'queries': [
# This is a list of (name, query) tuples where the name will
# be displayed on the front-end.
(_('0 to 20'), u'[0 TO 20]'),
(_('20 to 40'), u'[20 TO 40]'),
(_('40 to 60'), u'[40 TO 60]'),
(_('60+'), u'[60 TO *]'),
]
}),
])
}

是否可以使用它来过滤产品,或者有其他方法吗?

最佳答案

简单回答

是的,您可以使用 oscar 根据各种搜索方面过滤产品。您将不得不使用 haystack 的简单后端以外的搜索后端。

您在问题代码中提到的方面是默认可用的。 Oscar 提供了更多可以显示为搜索过滤器的字段和查询。如果您想要应用程序自定义的字段,默认情况下不被 oscar 索引(例如自定义产品属性),请查看详细答案。

详细解答

在最新版本的 oscar 中,您可以通过这种方式添加默认情况下在 oscar 中不存在的其他过滤器,例如年份、品牌、场合。

搜索后端

首先,使用搜索后端而不是 Haystack 的简单后端。 Django oscar 正式支持 Apache Solr( Documentation here )。如果您使用的是最新版本的 Solr,您可能需要对 schema.xmlsolrconfig.xml

进行一些更改

索引字段

某些字段,例如产品的价格product_class 会被 Django Oscar 自动索引。如果您想索引其他字段,例如产品属性,您必须编辑 oscar 搜索应用程序的 search_indexes.py 以指定要索引的新字段。 fork oscar 的搜索应用程序以指定您自己的 search_indexes.py 的推荐方法。添加要索引的新字段后,不要忘记重新索引产品。

指定搜索方面settings.py 中的 OSCAR_SEARCH_FACETS 设置可用于指定要在前端显示的方面。为 OSCAR_SEARCH_FACETS 指定字段和查询,重新启动服务器,您将在前端看到新的方面。

关于python - OSCAR_SEARCH_FACETS 用于过滤产品列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32710792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com