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