fix sort by product type
This commit is contained in:
parent
bc1a9ac496
commit
5e5d2832cd
|
|
@ -38,6 +38,13 @@ class ProductType(TypeDefaultImageMixin, TranslatedFieldsMixin, ProjectBaseMixin
|
|||
(SOUVENIR, 'souvenir'),
|
||||
(BOOK, 'book')
|
||||
)
|
||||
|
||||
INDEX_PLURAL_ONE = {
|
||||
'food': 'food',
|
||||
'wines': 'wine',
|
||||
'liquors': 'liquor',
|
||||
}
|
||||
|
||||
name = TJSONField(blank=True, null=True, default=None,
|
||||
verbose_name=_('Name'), help_text='{"en-GB":"some text"}')
|
||||
index_name = models.CharField(max_length=50, unique=True, db_index=True,
|
||||
|
|
|
|||
|
|
@ -19,10 +19,13 @@ urlpatterns = [
|
|||
|
||||
# similar products by type/subtype
|
||||
# temporary uses single mechanism, bec. description in process
|
||||
path('slug/<slug:slug>/similar/wines/', views.SimilarListView.as_view(),
|
||||
name='similar-wine'),
|
||||
path('slug/<slug:slug>/similar/liquors/', views.SimilarListView.as_view(),
|
||||
name='similar-liquor'),
|
||||
path('slug/<slug:slug>/similar/food/', views.SimilarListView.as_view(),
|
||||
name='similar-food'),
|
||||
# path('slug/<slug:slug>/similar/wines/', views.SimilarListView.as_view(),
|
||||
# name='similar-wine'),
|
||||
# path('slug/<slug:slug>/similar/liquors/', views.SimilarListView.as_view(),
|
||||
# name='similar-liquor'),
|
||||
# path('slug/<slug:slug>/similar/food/', views.SimilarListView.as_view(),
|
||||
# name='similar-food'),
|
||||
|
||||
path('slug/<slug:slug>/similar/<str:type>/', views.SimilarListView.as_view(),
|
||||
name='similar-products')
|
||||
]
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from rest_framework import generics, permissions
|
|||
from comment.models import Comment
|
||||
from comment.serializers import CommentRUDSerializer
|
||||
from product import filters, serializers
|
||||
from product.models import Product
|
||||
from product.models import Product, ProductType
|
||||
from utils.views import FavoritesCreateDestroyMixinView
|
||||
from utils.pagination import PortionPagination
|
||||
from django.conf import settings
|
||||
|
|
@ -44,8 +44,15 @@ class ProductSimilarView(ProductListView):
|
|||
"""
|
||||
Return base product instance for a getting list of similar products.
|
||||
"""
|
||||
product = get_object_or_404(Product.objects.all(),
|
||||
slug=self.kwargs.get('slug'))
|
||||
if isinstance(self.kwargs.get('type'), str):
|
||||
if not self.kwargs.get('type') in ProductType.INDEX_PLURAL_ONE:
|
||||
return None
|
||||
product_type = get_object_or_404(ProductType.objects.all(), index_name=ProductType.INDEX_PLURAL_ONE[self.kwargs.get('type')])
|
||||
product = get_object_or_404(Product.objects.all(),
|
||||
slug=self.kwargs.get('slug'), product_type=product_type)
|
||||
else:
|
||||
product = get_object_or_404(Product.objects.all(),
|
||||
slug=self.kwargs.get('slug'))
|
||||
return product
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user