sttpforever

Untitled

Jun 26th, 2021
480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. class CommentViewSet(viewsets.ModelViewSet):
  2. queryset = Comment.objects.all()
  3. serializer_class = CommentSerializer
  4. permission_classes = [permissions.IsAuthenticated | ReadOnly]
  5.  
  6. def put(self, request, pk):
  7. if Comment.objects.get(pk=pk).exists():
  8. if request.user == Comment.objects.get(pk=pk).author:
  9. comment = Comment.objects.get(pk=pk)
  10. data = self.request.data
  11. data['comment'] = comment.id
  12. serializer = CommentSerializer(
  13. data=data, context={'request': self.request})
  14. serializer.is_valid(raise_exception=True)
  15. self.perform_create(serializer)
  16. return Response(serializer.data, status=status.HTTP_201_CREATED)
  17. return Response(status=status.HTTP_403_FORBIDDEN)
  18. return Response(status=status.HTTP_400_BAD_REQUEST)
  19.  
  20.  
  21. def create(self, *args, **kwargs):
  22. if int(self.kwargs['post_id']) > 0:
  23. post = Post.objects.get(pk=int(self.kwargs['post_id']))
  24. data = self.request.data
  25. data['post'] = post.id
  26. serializer = CommentSerializer(
  27. data=data, context={'request': self.request})
  28. serializer.is_valid(raise_exception=True)
  29. self.perform_create(serializer)
  30. return Response(serializer.data, status=status.HTTP_201_CREATED)
  31. return Response(status=status.HTTP_400_BAD_REQUEST)
  32.  
  33. def perform_create(self, serializer):
  34. serializer.save(author=self.request.user)
  35.  
  36.  
  37.  
  38. def get_queryset(self):
  39. post_id = int(self.kwargs['post_id'])
  40. return Comment.objects.filter(post__id=post_id)
  41.  
  42.  
  43. class UserViewSet(viewsets.ReadOnlyModelViewSet):
  44. queryset = User.objects.all()
  45. serializer_class = UserSerializer
  46.  
Advertisement
Add Comment
Please, Sign In to add comment