article list api

This commit is contained in:
jain
2023-08-07 17:06:31 +05:30
parent 0a1b9c7e70
commit ae0fc4fe8d
5 changed files with 56 additions and 16 deletions

View File

@ -16,7 +16,7 @@ from base.messages import SUCCESS_CODE, ERROR_CODE
from web_admin.models import Article, ArticleCard, ArticleSurvey, DefaultArticleCardImage
from web_admin.permission import AdminPermission
from web_admin.serializers.article_serializer import (ArticleSerializer, ArticleCardSerializer,
DefaultArticleCardImageSerializer)
DefaultArticleCardImageSerializer, ArticleListSerializer)
USER = get_user_model()
@ -195,3 +195,33 @@ class DefaultArticleCardImagesViewSet(GenericViewSet, mixins.CreateModelMixin, m
return custom_response(None, data=serializer.data)
class ArticleListViewSet(GenericViewSet, mixins.ListModelMixin):
"""
article api
"""
serializer_class = ArticleListSerializer
permission_classes = [IsAuthenticated,]
queryset = Article
http_method_names = ['get',]
def get_queryset(self):
article = self.queryset.objects.filter(is_deleted=False).prefetch_related(
'article_cards', 'article_survey', 'article_survey__options'
).order_by('-created_at')
queryset = self.filter_queryset(article)
return queryset
def list(self, request, *args, **kwargs):
"""
article list api method
:param request:
:param args:
:param kwargs:
:return: list of article
"""
queryset = self.get_queryset()
count = queryset.count()
paginator = self.pagination_class()
paginated_queryset = paginator.paginate_queryset(queryset, request)
serializer = self.serializer_class(paginated_queryset, many=True)
return custom_response(None, data=serializer.data, count=count)