25 mixin
mixin
-
mixin类提供用于提供基本用户行为(列表视图和详情视图)的操作
-
配合二级视图genericAPIView使用
| 类名称 | 方法 | 功能 |
|---|---|---|
| ListModelMixin | .list(request, *args, **kwargs) | 查询所有数据 |
| CreateModelMixin | .create(request, *args, **kwargs) | 创建单个 |
| RetrieveModelMixin | .retrieve(request, *args, **kwargs) | 查询单个 |
| UpdateModelMixin | .update(request, *args, **kwargs) | 更新 |
| DestroyModelMixin | .destroy(request, *args, **kwargs) | 销毁删除 |
mixin配合二级视图generic使用
view
from rest_framework.mixins import ListModelMixin,CreateModelMixin
class BookInfoMixinGenericView(GenericAPIView,ListModelMixin,CreateModelMixin):
queryset=BookInfo.objects.all()
serializer_class=BookInfoSerializer
def get(self,request):
return self.list(request)
def post(self,request):
return self.create(request)
from rest_framework.mixins import RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin
class BookInfoMixinGenericDetailView(GenericAPIView,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin):
queryset = BookInfo.objects.all()# 也是必须填写 后面的get_object()是从这里获取
serializer_class = BookInfoSerializer
def get(self,request,pk):
return self.retrieve(request)
# 更新单个
def put(self,request,pk):
return self.update(request)
# 删除单个
def delete(self,request,pk):
return self.destroy(request)
url
from django.urls import path,include
from . import views
urlpatterns=[
path('books/',views.BookInfoView.as_view()),
path('books/<int:id>', views.BookInfoDetailView.as_view()),
path('generic_view_books/', views.BookInfoGenericView.as_view()),
path('generic_view_books/<int:pk>', views.BookInfoGenericDetailView.as_view()),
path('mixin_generic_view_books/', views.BookInfoMixinGenericView.as_view()),
path('mixin_generic_view_books/<int:pk>', views.BookInfoMixinGenericDetailView.as_view()),
]

浙公网安备 33010602011771号