@never_cache
class ListItemListViewV3(ListCreateAPIView):
permission_classes = [IsAuthenticatedOrReadOnly]
- serializer_class = serializers.UserListItemSerializer
def get_queryset(self):
lst = get_userlist(self.kwargs['slug'], self.request)
return lst.userlistitem_set.all().order_by('order')
+ def get_serializer_class(self):
+ if self.request.method == 'GET':
+ return serializers.UserListItemReadSerializer
+ else:
+ return serializers.UserListItemSerializer
+
def get_serializer(self, *args, **kwargs):
serializer_class = self.get_serializer_class()
kwargs.setdefault('context', self.get_serializer_context())
serializer.save(list=lst)
+class ListItemsView(APIView):
+ permission_classes = [IsAuthenticated]
+
+ def delete(self, request):
+ if not isinstance(self.request.data, list):
+ return Response({"error": "no data"}, status=400)
+ models.UserListItem.objects.filter(
+ list__user=self.request.user,
+ uuid__in=self.request.data
+ ).delete()
+ return Response({})
+
+
@never_cache
class ListItemViewV3(RetrieveUpdateDestroyAPIView):
permission_classes = [IsAuthenticated]
- serializer_class = serializers.UserListItemSerializer
lookup_field = 'uuid'
def get_queryset(self):
list__user=self.request.user
)
+ def get_serializer_class(self):
+ if self.request.method == 'GET':
+ return serializers.UserListItemReadSerializer
+ else:
+ return serializers.UserListItemSerializer
+
@vary_on_auth
class ShelfView(ListAPIView):