We conducted a package is easier to use on the basis of the original modelserializers
#author classAuthorModelSerializers (serializers.ModelSerializer): classMeta -: Model=models.Author Fields="__all__ is" fromrest_frameworkImportas mixins fromrest_frameworkImportgenerics classAuthorView (mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView): #QuerySet Serializer these two methods must be defined as a value that otherwise fail to QuerySet =models.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 AuthorDetaiView(mixins.RetrieveModelMixin, mixins.DestroyModelMixin, mixins.UpdateModelMixin, generics.GenericAPIView): # queryset serializer 这两个方法一定要定义成这个不然取不到值 queryset = models.Author.objects.all() serializer_class = AuthorModelSerializers def get(self, request, *args, **kwargs): return self.retrieve(request, *args, **kwargs) def delete(self,request,*args,**kwargs): return self.destroy(request,*args,**kwargs) def put(self,request,*args,**kwargs): return self.update(request,*args,**kwargs)
Generic class-based view (third package reduces the amount of code)
# Author class AuthorModelSerializers (serializers.ModelSerializer): class Meta -: Model = models.Author Fields = " __all__ is " from rest_framework Import as mixins from rest_framework Import generics # encapsulated layer 3 class AuthorView (generics.ListCreateAPIView): # QuerySet both Serializer the method must be defined as the value otherwise fail to QuerySet = models.Author.objects.all () serializer_class = AuthorModelSerializers # encapsulated layer 3 class AuthorDetaiView (generics.RetrieveUpdateDestroyAPIView): # QuerySet Serializer these two methods must be defined as a value that otherwise fail to QuerySet = models.Author.objects.all () serializer_class = AuthorModelSerializers
use viewset
viewsets.ModelViewSet
principle:
Author #
class AuthorModelSerializers (serializers.ModelSerializer): class Meta: Model = models.Author Fields = "__all__" from rest_framework Import mixins from rest_framework Import generics class AuthorView (mixins.ListModelMixin , mixins.CreateModelMixin , generics.GenericAPIView): # QuerySet the Serializer both of these methods must be defined as a value that otherwise fail to QuerySet = models.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 AuthorDetaiView (mixins.RetrieveModelMixin , mixins.DestroyModelMixin , mixins.UpdateModelMixin ,
generics.GenericAPIView):
# QuerySet Serializer these two methods must be defined as a value that otherwise fail to
queryset = models.Author.objects.all ()
serializer_class = AuthorModelSerializers
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
def delete(self,request,*args,**kwargs):
return self.destroy(request,*args,**kwargs)
def put(self,request,*args,**kwargs):
return self.update(request,*args,**kwargs)