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