from django.shortcuts import render from rest_framework.viewsets import ModelViewSet from apps.cms.models import Article from apps.cms.serializers import ArticleCreateUpdateSerializer, ArticleDetailSerializer, ArticleListSerializer from apps.system.mixins import CreateUpdateModelAMixin # Create your views here. class ArticleViewSet(CreateUpdateModelAMixin, ModelViewSet): """ 文章增删改查 """ perms_map = {'get': '*', 'post': 'article_create' , 'put':'article_update', 'delete':'article_delete'} queryset = Article.objects.select_related('create_by') filterset_fields = ['is_top', 'is_published'] serializer_class = ArticleListSerializer search_fields = ['title', 'author'] ordering = ['-is_published', '-is_top', '-update_time'] def get_serializer_class(self): if self.action in ['create', 'update']: return ArticleCreateUpdateSerializer elif self.action in ['retrieve']: return ArticleDetailSerializer return super().get_serializer_class()