Java教程

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

 

这篇关于DRF框架--视图集中新增额外行为的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!