# rest_framework/generics.pyclassRetrieveAPIView(mixins.RetrieveModelMixin,
GenericAPIView):"""
Concrete view for retrieving a model instance.
"""defget(self, request,*args,**kwargs):return self.retrieve(request,*args,**kwargs)
# rest_framework/mixin.pyclassRetrieveModelMixin(object):"""
Retrieve a model instance.
"""defretrieve(self, request,*args,**kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance)return Response(serializer.data)
# rest_framework/generics.pydefget_object(self):
queryset = self.filter_queryset(self.get_queryset())# Perform the lookup filtering.
lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
assert lookup_url_kwarg in self.kwargs,('Expected view %s to be called with a URL keyword argument ''named "%s". Fix your URL conf, or set the `.lookup_field` ''attribute on the view correctly.'%(self.__class__.__name__, lookup_url_kwarg))
filter_kwargs ={self.lookup_field: self.kwargs[lookup_url_kwarg]}
obj = get_object_or_404(queryset,**filter_kwargs)# May raise a permission denied
self.check_object_permissions(self.request, obj)return obj