Skip to content

Instantly share code, notes, and snippets.

@codephillip
Created August 2, 2017 14:52
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codephillip/03ff3831d0ada36663bed0cc7c4bba0b to your computer and use it in GitHub Desktop.
Save codephillip/03ff3831d0ada36663bed0cc7c4bba0b to your computer and use it in GitHub Desktop.
ListCreateAPIView in django rest framework with different serializer for the GET and POST
from rest_framework import generics, status
from rest_framework.response import Response
from rack.models import RackItem
from rack.serializers import RackItemSerializer, NewRackItemSerializer
class ListCreateRackItem(generics.ListCreateAPIView):
model = RackItem
def get_serializer_class(self):
if self.request.method == 'POST':
return NewRackItemSerializer
return RackItemSerializer
def get_queryset(self):
return RackItem.objects.filter(shopper=self.request.user)
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA)
if not serializer.is_valid():
return Response(
serializer.errors, status=status.HTTP_400_BAD_REQUEST)
item = RackItem.objects.create(
shopper=request.user,
item_url=serializer.data['item_url'],
item_image_url=serializer.data['item_image_url'])
result = RackItemSerializer(item)
return Response(result.data, status=status.HTTP_201_CREATED)
class GetUpdateDeleteRackItem(generics.RetrieveUpdateDestroyAPIView):
model = RackItem
serializer_class = RackItemSerializer
def get_queryset(self):
return RackItem.objects.filter(shopper=self.request.user)
@IsaacHatilima
Copy link

Hi, on the RetrieveUpdateDestroyAPIView how do I create the class in such a way the I can create get,patch/put and delete and confirm if the objecte was deleted?

class ProvinceDetailsAPIView(RetrieveUpdateDestroyAPIView):
    permission_classes = (permissions.IsAuthenticated,)
    lookup_field = 'id'
    queryset = Province
    serializer_class = ProvinceDetailedSerializer 

Right now that is my code but i need to make a get request to confirm if the object was deleted or update.
Thanks.

@zio4272
Copy link

zio4272 commented Feb 23, 2022

GoooooooooD!

@melakhvision
Copy link

Thank you so much !!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment