本文整理汇总了Python中webapps.models.Webapp.search方法的典型用法代码示例。如果您正苦于以下问题:Python Webapp.search方法的具体用法?Python Webapp.search怎么用?Python Webapp.search使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类webapps.models.Webapp
的用法示例。
在下文中一共展示了Webapp.search方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: app_search
# 需要导入模块: from webapps.models import Webapp [as 别名]
# 或者: from webapps.models.Webapp import search [as 别名]
def app_search(request, template=None):
form = ESSearchForm(request.GET or {}, type=amo.ADDON_WEBAPP)
form.is_valid() # Let the form try to clean data.
query = form.cleaned_data
qs = (Webapp.search().query(or_=name_query(query['q']))
.filter(type=amo.ADDON_WEBAPP, status=amo.STATUS_PUBLIC,
is_disabled=False)
.facet(tags={'terms': {'field': 'tag'}},
categories={'terms': {'field': 'category', 'size': 100}}))
if query.get('tag'):
qs = qs.filter(tag=query['tag'])
if query.get('cat'):
qs = qs.filter(category=query['cat'])
if query.get('sort'):
mapping = {'downloads': '-weekly_downloads',
'rating': '-bayesian_rating',
'created': '-created',
'name': '-name_sort',
'hotness': '-hotness'}
qs = qs.order_by(mapping[query['sort']])
pager = amo.utils.paginate(request, qs)
facets = pager.object_list.facets
ctx = {
'pager': pager,
'query': query,
'form': form,
'sorting': sort_sidebar(request, query, form),
'categories': category_sidebar(request, query, facets),
'tags': tag_sidebar(request, query, facets),
}
return jingo.render(request, template, ctx)
示例2: app_search
# 需要导入模块: from webapps.models import Webapp [as 别名]
# 或者: from webapps.models.Webapp import search [as 别名]
def app_search(request, tag_name=None, template=None):
form = ESSearchForm(request.GET.copy() or {}, type=amo.ADDON_WEBAPP)
form.is_valid() # Let the form try to clean data.
query = form.cleaned_data
# TODO(apps): We should figure out if we really want tags for apps.
if tag_name:
query["tag"] = tag_name
qs = (
Webapp.search()
.filter(type=amo.ADDON_WEBAPP, status=amo.STATUS_PUBLIC, is_disabled=False)
.facet(tags={"terms": {"field": "tag"}}, categories={"terms": {"field": "category", "size": 200}})
)
filters = ["cat", "price", "sort", "tag"]
mapping = {
"downloads": "-weekly_downloads",
"rating": "-bayesian_rating",
"created": "-created",
"name": "name_sort",
"hotness": "-hotness",
"price": "price",
}
qs = _filter_search(request, qs, query, filters, mapping, [amo.ADDON_WEBAPP])
pager = amo.utils.paginate(request, qs)
facets = pager.object_list.facets
sort, extra_sort = split_choices(form.sort_choices, "price")
ctx = {
"is_pjax": request.META.get("HTTP_X_PJAX"),
"pager": pager,
"query": query,
"form": form,
"sorting": sort_sidebar(request, query, form),
"sort_opts": sort,
"extra_sort_opts": extra_sort,
"sort": query.get("sort"),
"webapp": True,
}
if not ctx["is_pjax"]:
ctx.update(
{
"prices": price_sidebar(request, query, facets),
"categories": category_sidebar(request, query, facets),
"tags": tag_sidebar(request, query, facets),
}
)
return jingo.render(request, template, ctx)
示例3: app_search
# 需要导入模块: from webapps.models import Webapp [as 别名]
# 或者: from webapps.models.Webapp import search [as 别名]
def app_search(request, tag_name=None, template=None):
form = ESSearchForm(request.GET.copy() or {}, type=amo.ADDON_WEBAPP)
form.is_valid() # Let the form try to clean data.
query = form.cleaned_data
# TODO(apps): We should figure out if we really want tags for apps.
if tag_name:
query['tag'] = tag_name
qs = (Webapp.search()
.filter(type=amo.ADDON_WEBAPP, status=amo.STATUS_PUBLIC,
is_disabled=False)
.facet(tags={'terms': {'field': 'tag'}},
categories={'terms': {'field': 'category', 'size': 200}}))
filters = ['cat', 'price', 'sort', 'tag']
mapping = {'downloads': '-weekly_downloads',
'rating': '-bayesian_rating',
'created': '-created',
'name': 'name_sort',
'hotness': '-hotness',
'price': 'price'}
qs = _filter_search(request, qs, query, filters, mapping,
[amo.ADDON_WEBAPP])
pager = amo.utils.paginate(request, qs)
facets = pager.object_list.facets
sort, extra_sort = split_choices(form.sort_choices, 'price')
ctx = {
'is_pjax': request.META.get('HTTP_X_PJAX'),
'pager': pager,
'query': query,
'form': form,
'sorting': sort_sidebar(request, query, form),
'sort_opts': sort,
'extra_sort_opts': extra_sort,
'sort': query.get('sort'),
'webapp': True,
}
if not ctx['is_pjax']:
ctx.update({
'prices': price_sidebar(request, query, facets),
'categories': category_sidebar(request, query, facets),
'tags': tag_sidebar(request, query, facets),
})
return jingo.render(request, template, ctx)
示例4: app_search
# 需要导入模块: from webapps.models import Webapp [as 别名]
# 或者: from webapps.models.Webapp import search [as 别名]
def app_search(request, template=None):
form = ESSearchForm(request.GET or {}, type=amo.ADDON_WEBAPP)
form.is_valid() # Let the form try to clean data.
query = form.cleaned_data
qs = (
Webapp.search()
.query(or_=name_query(query["q"]))
.filter(type=amo.ADDON_WEBAPP, status=amo.STATUS_PUBLIC, is_disabled=False)
.facet(tags={"terms": {"field": "tag"}}, categories={"terms": {"field": "category", "size": 100}})
)
if query.get("tag"):
qs = qs.filter(tag=query["tag"])
if query.get("cat"):
qs = qs.filter(category=query["cat"])
if query.get("sort"):
mapping = {
"downloads": "-weekly_downloads",
"rating": "-bayesian_rating",
"created": "-created",
"name": "-name_sort",
"hotness": "-hotness",
}
qs = qs.order_by(mapping[query["sort"]])
pager = amo.utils.paginate(request, qs)
facets = pager.object_list.facets
ctx = {
"pager": pager,
"query": query,
"form": form,
"sorting": sort_sidebar(request, query, form),
"categories": category_sidebar(request, query, facets),
"tags": tag_sidebar(request, query, facets),
}
return jingo.render(request, template, ctx)