23 lines
		
	
	
		
			841 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			841 B
		
	
	
	
		
			Python
		
	
	
	
| from apps.utils.viewsets import CustomModelViewSet
 | |
| from apps.cms.models import Article
 | |
| from apps.cms.serializers import ArticleSerializer
 | |
| from rest_framework.decorators import action
 | |
| from rest_framework.serializers import Serializer
 | |
| from rest_framework.response import Response
 | |
| # Create your views here.
 | |
| 
 | |
| class ArticleViewSet(CustomModelViewSet):
 | |
|     queryset = Article.objects.all()
 | |
|     serializer_class = ArticleSerializer
 | |
|     ordering = ["is_top", "-create_time"]
 | |
| 
 | |
|     @action(methods=['put'], detail=True, serializer_class=Serializer, perms_map={"put": "article.update"})
 | |
|     def toggle_top(self, request, pk=None):
 | |
|         """文章置顶/取消
 | |
| 
 | |
|         文章置顶/取消
 | |
|         """
 | |
|         ins:Article = self.get_object()
 | |
|         ins.is_top = False if ins.is_top else True
 | |
|         ins.save()
 | |
|         return Response({"id": ins.id}) |