hberp/hb_server/apps/cms/views.py

26 lines
1.0 KiB
Python

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()