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."""
|
||||
|
||||
def with_base_related(self):
|
||||
"""Select related objects."""
|
||||
return self.prefetch_related('tags')
|
||||
|
||||
def for_news(self):
|
||||
"""Select tag categories for news."""
|
||||
return self.filter(news_types__isnull=True)
|
||||
|
||||
def for_establishments(self):
|
||||
return self
|
||||
# return self.filter(models.Q(est_subtype_tag_categories__isnull=True) |
|
||||
# models.Q(est_type_tag_categories__isnull=True)).\
|
||||
# distinct()
|
||||
"""Select tag categories for establishments."""
|
||||
return self.filter(models.Q(establishment_types__isnull=False) |
|
||||
models.Q(establishment_subtypes__isnull=False))
|
||||
|
||||
def with_tags(self, switcher=True):
|
||||
"""Filter by existing tags."""
|
||||
return self.filter(tags__isnull=not switcher)
|
||||
|
||||
def with_related(self):
|
||||
return self.select_related('country').prefetch_related('tags')
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class TagCategoryBaseSerializer(serializers.ModelSerializer):
|
|||
|
||||
|
||||
class TagCategoryDetailSerializer(TagCategoryBaseSerializer):
|
||||
|
||||
"""Detailed serializer for TagCategory model."""
|
||||
|
||||
class Meta(TagCategoryBaseSerializer.Meta):
|
||||
"""Meta class."""
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
"""Tag views."""
|
||||
from rest_framework import generics, viewsets, mixins
|
||||
from rest_framework import viewsets, mixins
|
||||
from tag import filters, models, serializers
|
||||
from rest_framework import permissions
|
||||
|
||||
|
|
@ -14,20 +14,11 @@ class TagViewSet(mixins.ListModelMixin, mixins.CreateModelMixin,
|
|||
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):
|
||||
"""ViewSet for TagCategory model."""
|
||||
|
||||
filterset_class = filters.TagCategoryFilterSet
|
||||
pagination_class = None
|
||||
permission_classes = (permissions.AllowAny, )
|
||||
queryset = models.TagCategory.objects.with_base_related()
|
||||
queryset = models.TagCategory.objects.with_tags().with_base_related()
|
||||
serializer_class = serializers.TagCategoryBaseSerializer
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ urlpatterns = [
|
|||
path('establishments/', include('establishment.urls.back')),
|
||||
path('location/', include('location.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('comment/', include('comment.urls.back')),
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user