from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from .serializers import ProductSerializer
from ..models import Product
from django.http import Http404
from rest_framework.views import APIView


class ProductDetail(APIView):
    permission_classes = (IsAuthenticated,)
    """
    Retrieve a product instance.
    """
    def get_object(self, slug):
        try:
            return Product.objects.get(code=slug)
        except Product.DoesNotExist:
            raise Http404

    def get(self, request, slug, format=None):
        snippet = self.get_object(slug)
        serializer = ProductSerializer(snippet)
        return Response(serializer.data)

from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from .serializers import ProductSerializer
from ..models import Product
from django.http import Http404
from rest_framework.views import APIView


class ProductDetail(APIView):
    permission_classes = (IsAuthenticated,)
    """
    Retrieve a product instance.
    """
    def get_object(self, code):
        try:
            return Product.get_by_code(code=code)
        except Product.DoesNotExist:
            raise Http404

    def get(self, request, slug, format=None):
        snippet = self.get_object(slug)
        serializer = ProductSerializer(snippet)
        return Response(serializer.data)

Use remote fallback for API request
Use remote fallback for API request

  from rest_framework.permissions import IsAuthenticated
  from rest_framework.response import Response
  from .serializers import ProductSerializer
  from ..models import Product
  from django.http import Http404
  from rest_framework.views import APIView
  
  
  class ProductDetail(APIView):
      permission_classes = (IsAuthenticated,)
      """
      Retrieve a product instance.
      """
-     def get_object(self, slug):
+     def get_object(self, code):
          try:
-             return Product.objects.get(code=slug)
+             return Product.get_by_code(code=code)
          except Product.DoesNotExist:
              raise Http404
  
      def get(self, request, slug, format=None):
          snippet = self.get_object(slug)
          serializer = ProductSerializer(snippet)
          return Response(serializer.data)
  
Use remote fallback for API request
## Code Before:
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from .serializers import ProductSerializer
from ..models import Product
from django.http import Http404
from rest_framework.views import APIView


class ProductDetail(APIView):
    permission_classes = (IsAuthenticated,)
    """
    Retrieve a product instance.
    """
    def get_object(self, slug):
        try:
            return Product.objects.get(code=slug)
        except Product.DoesNotExist:
            raise Http404

    def get(self, request, slug, format=None):
        snippet = self.get_object(slug)
        serializer = ProductSerializer(snippet)
        return Response(serializer.data)

## Instruction:
Use remote fallback for API request
## Code After:
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from .serializers import ProductSerializer
from ..models import Product
from django.http import Http404
from rest_framework.views import APIView


class ProductDetail(APIView):
    permission_classes = (IsAuthenticated,)
    """
    Retrieve a product instance.
    """
    def get_object(self, code):
        try:
            return Product.get_by_code(code=code)
        except Product.DoesNotExist:
            raise Http404

    def get(self, request, slug, format=None):
        snippet = self.get_object(slug)
        serializer = ProductSerializer(snippet)
        return Response(serializer.data)
