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)
来源: http://www.bubuko.com/infodetail-2900827.html