ViewsViewsets 上的 Mixins 和用法介紹列表
可用混合列表:
- ListModelMixin: 為 view / viewset 提供
.list()
方法 - RetrieveModelMixin: 為檢視/檢視集提供
.retrieve()
方法 - CreateModelMixin: 為 view / viewset 提供
.create()
方法 - UpdateModelMixin: 為檢視/檢視集提供
.update()
方法 - DestroyModelMixin: 為檢視/檢視集提供
.destroy()
方法
我們可以在通用檢視和檢視集中混合和匹配 mixin,以便為它們提供我們需要的相應實用程式:
-
使用
.list()
.create()
和.destroy()
方法的 API 檢視?
繼承GenericAPIView
並結合適當的 mixins:from rest_framework import mixins, generics from myapp.models import MyModel from myapp.serializers import MyModelSerializer class MyCustomAPIView(mixins.ListModelMixin, mixins.CreateModelMixin, mixins.DestroyModelMixin, generics.GenericAPIView): queryset = MyModel.objects.all() serializer_class = MyModelSerializer def get(self, request, *args, **kwargs): return self.list(request, *args, **kwargs) def post(self, request, *args, **kwargs): return self.create(request, *args, **kwargs) def delete(self, request, *args, **kwargs): return self.destroy(request, *args, **kwargs)
-
只有
.list()
和.update()
方法的檢視集?
繼承GenericViewSet
並新增適當的 mixins:from rest_framework import mixins class MyCustomViewSet(mixins.ListModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet): pass
是的,就這麼簡單!
總之,我們可以混合和匹配我們需要的每個 mixin,並利用它來定製我們的檢視和他們的方法任何可能的組合!