Kis*_*han 5 python django django-oscar
我正在使用django oscar开发电子商务网站.产品已列出,我必须应用过滤器(例如年份,价格等).我们可以使用oscar facet来实现这种过滤功能吗?
我尝试按照oscar文档添加以下内容,但不知道如何使其工作并在我的前端渲染.
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 *]'),
]
}),
])
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用它来过滤产品,还是有其他方式?
是的,您可以使用oscar根据各种搜索方面过滤产品.除了haystack的简单后端之外,您将不得不使用搜索后端.
您在问题的代码中提到的方面是默认情况下可用的方面.Oscar提供了更多可以显示为搜索过滤器的字段和查询.如果您希望自定义应用程序的字段并且默认情况下不被oscar索引(例如自定义产品属性),请查看详细答案.
在最新版本的oscar上,您可以添加额外的过滤器,例如年份,品牌,场合,默认情况下不在奥斯卡中.
搜索后端
首先,使用除Haystack简单后端之外的搜索后端.Django oscar正式支持Apache Solr(此处的文档).如果您使用的是最新版本的Solr,则可能必须对schema.xml和solrconfig.xml进行一些更改
索引字段
某些字段,例如产品或product_class的价格由Django Oscar自动编入索引.如果要索引其他字段(如产品属性),则必须编辑oscar搜索应用程序的search_indexes.py以指定要索引的新字段.推荐的方法来分叉奥斯卡的搜索应用程序以指定您自己的search_indexes.py.添加要编制索引的新字段后,请不要忘记重新编制产品索引.
指定搜索构面settings.py中 的OSCAR_SEARCH_FACETS 设置可用于指定要在前端显示的构面.指定OSCAR_SEARCH_FACETS的字段和查询,重新启动服务器,您将在前端看到新的构面.
| 归档时间: |
|
| 查看次数: |
1350 次 |
| 最近记录: |