Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

app.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from django.conf.urls import patterns, url
  2. from django.conf import settings
  3. from oscar.core.application import Application
  4. from oscar.apps.search import views, forms
  5. from haystack.views import search_view_factory
  6. from haystack.query import SearchQuerySet
  7. class SearchApplication(Application):
  8. name = 'search'
  9. search_view = views.MultiFacetedSearchView
  10. def get_urls(self):
  11. # Build SQS
  12. sqs = SearchQuerySet()
  13. for facet in settings.OSCAR_SEARCH_FACETS['fields'].values():
  14. sqs = sqs.facet(facet['field'])
  15. for facet in settings.OSCAR_SEARCH_FACETS['queries'].values():
  16. for query in facet['queries']:
  17. sqs = sqs.query_facet(facet['field'], query[1])
  18. # The form class has to be passed to the __init__ method as that is how
  19. # Haystack works. It's slightly different to normal CBVs.
  20. urlpatterns = patterns('',
  21. url(r'^$', self.search_view(form_class=forms.MultiFacetedSearchForm),
  22. name='search'),
  23. url(r'^default/$', search_view_factory(
  24. view_class=views.FacetedSearchView,
  25. form_class=forms.PriceRangeSearchForm,
  26. searchqueryset=sqs,
  27. template='search/results.html'),
  28. name='search-default'),
  29. )
  30. return self.post_process_urls(urlpatterns)
  31. application = SearchApplication()