OSCAR_SEARCH_FACETS 用于过滤产品列表
OSCAR_SEARCH_FACETS for filtering product lists
我正在使用 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.xml 和 solrconfig.xml[ 进行一些更改=11=]
索引字段
产品的 价格 或 product_class 等某些字段由 Django Oscar 自动索引。如果您想索引其他字段,例如 产品属性 ,您将必须编辑 oscar 搜索应用程序的 search_indexes.py 以指定新字段索引。分叉 oscar 的搜索应用程序以指定您自己的 search_indexes.py 的推荐方法。
添加要索引的新字段后,不要忘记重新索引产品。
指定搜索构面
settings.py中的OSCAR_SEARCH_FACETS设置可用于指定在前端显示哪些方面。为 OSCAR_SEARCH_FACETS 指定字段和查询,重新启动服务器,您将在前端看到新的方面。
我正在使用 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.xml 和 solrconfig.xml[ 进行一些更改=11=]
索引字段
产品的 价格 或 product_class 等某些字段由 Django Oscar 自动索引。如果您想索引其他字段,例如 产品属性 ,您将必须编辑 oscar 搜索应用程序的 search_indexes.py 以指定新字段索引。分叉 oscar 的搜索应用程序以指定您自己的 search_indexes.py 的推荐方法。 添加要索引的新字段后,不要忘记重新索引产品。
指定搜索构面 settings.py中的OSCAR_SEARCH_FACETS设置可用于指定在前端显示哪些方面。为 OSCAR_SEARCH_FACETS 指定字段和查询,重新启动服务器,您将在前端看到新的方面。