26 lines
1.0 KiB
Python
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() |