fix tagcategory queryset
This commit is contained in:
parent
c94ad3f017
commit
42ae1cbb87
|
|
@ -33,16 +33,21 @@ class TagCategoryQuerySet(models.QuerySet):
|
||||||
"""Extended queryset for TagCategory model."""
|
"""Extended queryset for TagCategory model."""
|
||||||
|
|
||||||
def with_base_related(self):
|
def with_base_related(self):
|
||||||
|
"""Select related objects."""
|
||||||
return self.prefetch_related('tags')
|
return self.prefetch_related('tags')
|
||||||
|
|
||||||
def for_news(self):
|
def for_news(self):
|
||||||
|
"""Select tag categories for news."""
|
||||||
return self.filter(news_types__isnull=True)
|
return self.filter(news_types__isnull=True)
|
||||||
|
|
||||||
def for_establishments(self):
|
def for_establishments(self):
|
||||||
return self
|
"""Select tag categories for establishments."""
|
||||||
# return self.filter(models.Q(est_subtype_tag_categories__isnull=True) |
|
return self.filter(models.Q(establishment_types__isnull=False) |
|
||||||
# models.Q(est_type_tag_categories__isnull=True)).\
|
models.Q(establishment_subtypes__isnull=False))
|
||||||
# distinct()
|
|
||||||
|
def with_tags(self, switcher=True):
|
||||||
|
"""Filter by existing tags."""
|
||||||
|
return self.filter(tags__isnull=not switcher)
|
||||||
|
|
||||||
def with_related(self):
|
def with_related(self):
|
||||||
return self.select_related('country').prefetch_related('tags')
|
return self.select_related('country').prefetch_related('tags')
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ class TagCategoryBaseSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class TagCategoryDetailSerializer(TagCategoryBaseSerializer):
|
class TagCategoryDetailSerializer(TagCategoryBaseSerializer):
|
||||||
|
"""Detailed serializer for TagCategory model."""
|
||||||
|
|
||||||
class Meta(TagCategoryBaseSerializer.Meta):
|
class Meta(TagCategoryBaseSerializer.Meta):
|
||||||
"""Meta class."""
|
"""Meta class."""
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
"""Tag views."""
|
"""Tag views."""
|
||||||
from rest_framework import generics, viewsets, mixins
|
from rest_framework import viewsets, mixins
|
||||||
from tag import filters, models, serializers
|
from tag import filters, models, serializers
|
||||||
from rest_framework import permissions
|
from rest_framework import permissions
|
||||||
|
|
||||||
|
|
@ -14,20 +14,11 @@ class TagViewSet(mixins.ListModelMixin, mixins.CreateModelMixin,
|
||||||
serializer_class = serializers.TagBackOfficeSerializer
|
serializer_class = serializers.TagBackOfficeSerializer
|
||||||
|
|
||||||
|
|
||||||
class TagCategoryListCreateView(generics.ListCreateAPIView):
|
|
||||||
"""List/create tag category view."""
|
|
||||||
|
|
||||||
pagination_class = None
|
|
||||||
permission_classes = (permissions.AllowAny, )
|
|
||||||
queryset = models.TagCategory.objects.all()
|
|
||||||
serializer_class = serializers.TagCategoryBackOfficeDetailSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class TagCategoryViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
|
class TagCategoryViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
|
||||||
"""ViewSet for TagCategory model."""
|
"""ViewSet for TagCategory model."""
|
||||||
|
|
||||||
filterset_class = filters.TagCategoryFilterSet
|
filterset_class = filters.TagCategoryFilterSet
|
||||||
pagination_class = None
|
pagination_class = None
|
||||||
permission_classes = (permissions.AllowAny, )
|
permission_classes = (permissions.AllowAny, )
|
||||||
queryset = models.TagCategory.objects.with_base_related()
|
queryset = models.TagCategory.objects.with_tags().with_base_related()
|
||||||
serializer_class = serializers.TagCategoryBaseSerializer
|
serializer_class = serializers.TagCategoryBaseSerializer
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ urlpatterns = [
|
||||||
path('establishments/', include('establishment.urls.back')),
|
path('establishments/', include('establishment.urls.back')),
|
||||||
path('location/', include('location.urls.back')),
|
path('location/', include('location.urls.back')),
|
||||||
path('news/', include('news.urls.back')),
|
path('news/', include('news.urls.back')),
|
||||||
path('tags/', include(('tag.urls.back', 'tag'), namespace='tag')),
|
# path('tags/', include(('tag.urls.back', 'tag'), namespace='tag')),
|
||||||
path('account/', include('account.urls.back')),
|
path('account/', include('account.urls.back')),
|
||||||
path('comment/', include('comment.urls.back')),
|
path('comment/', include('comment.urls.back')),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user