Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

app.py 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from django.conf.urls import patterns, url, include
  2. from oscar.core.application import Application
  3. from oscar.apps.catalogue.views import ProductDetailView, ProductListView, ProductCategoryView
  4. from oscar.apps.catalogue.reviews.app import application as reviews_app
  5. class BaseCatalogueApplication(Application):
  6. name = 'catalogue'
  7. detail_view = ProductDetailView
  8. index_view = ProductListView
  9. category_view = ProductCategoryView
  10. def get_urls(self):
  11. urlpatterns = super(BaseCatalogueApplication, self).get_urls()
  12. urlpatterns += patterns('',
  13. url(r'^$', self.index_view.as_view(), name='index'),
  14. url(r'^(?P<product_slug>[\w-]*)_(?P<pk>\d+)/$',
  15. self.detail_view.as_view(), name='detail'),
  16. url(r'^(?P<category_slug>[\w-]+(/[\w-]+)*)/$',
  17. self.category_view.as_view(), name='category')
  18. )
  19. return self.post_process_urls(urlpatterns)
  20. class ReviewsApplication(Application):
  21. name = None
  22. reviews_app = reviews_app
  23. def get_urls(self):
  24. urlpatterns = super(ReviewsApplication, self).get_urls()
  25. urlpatterns += patterns('',
  26. url(r'^(?P<product_slug>[\w-]*)-(?P<product_pk>\d+)/reviews/',
  27. include(self.reviews_app.urls)),
  28. )
  29. return self.post_process_urls(urlpatterns)
  30. class CatalogueApplication(BaseCatalogueApplication, ReviewsApplication):
  31. """
  32. Composite class combining Products with Reviews
  33. """
  34. application = CatalogueApplication()