1. 程式人生 > >Django REST_framework框架 02

Django REST_framework框架 02

mixin類編寫檢視

urls

from app01 import views
urlpatterns = [
    ......
    url(r'^authors/$', views.AuthorView.as_view(), name="author"),
    url(r'^authors/(?P<pk>\d+)/$', views.AuthorDetailView.as_view(), name="detail_author"),
]

還要寫一個ModelSerializer,方法與上一篇博文中相同
views

from rest_framework import mixins
from rest_framework import generics

#GenericAPIView繼承了APIView
class AuthorView(mixins.ListModelMixin,    #檢視所有
                 mixins.CreateModelMixin,  #新增
                 generics.GenericAPIView):
    queryset = Author.objects.all()
    serializer_class = AuthorModelSerializers

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)

class AuthorDetailView(mixins.DestroyModelMixin,   #刪除
                       mixins.RetrieveModelMixin,  #檢視單條
                       mixins.UpdateModelMixin,    #更新
                       generics.GenericAPIView):
    queryset = Author.objects.all()
    serializer_class = AuthorModelSerializers

    def get(self, request, *args, **kwargs):
        return self.retrieve(request, *args, **kwargs)

    def put(self, request, *args, **kwargs):
        return self.update(request, *args, **kwargs)

    def delete(self, request, *args, **kwargs):
        return self.destroy(request, *args, **kwargs)