其他分享
首页 > 其他分享> > DRF框架--视图集中新增额外行为

DRF框架--视图集中新增额外行为

作者:互联网

视图集: ViewSet,GenericViewSet,ModelViewSet

视图集增加额外行为,比如增加查询最新的一本图书信息:

class BookViewSet(ModelViewSet)
    '''视图集'''
    queryset = BookInfo.objects.all()
    serializer_class = BookInfoModelSerializer

    def latest(self,request):
        '''返回最后一本图书信息'''
        book = BookInfo.objects.latest('id')
        serializer = self.get_serializer(book)
        return Response(serializer.data)

 

路由页面:

urlpatterns = [
    
# 如果在增删改查之外额外增加行为,应该单独定义路由
# 如果此行为不需要pk,那么它就是列表视图,但是列表视图默认只有list和create,因此需要暴露你的行为:latest       
url(r'^books/latest$'),views.BookViewSet.as_view({'get':'latest'}) # 比如我们在增加一个修改阅读量的行为,是需要传入pk值的 url(r'^books/(?P<pk>\d+)/read$'),views.BookViewSet.as_view({'put':'read'}) ]

 

标签:--,视图,BookViewSet,图集,DRF,行为,serializer,latest
来源: https://www.cnblogs.com/ericyjchung/p/16362809.html