def post(self, request, format=None): user = request.user serializer = PostSerializer(data=request.data,context={'user':user}) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, pk, format=None): post = self.get_object(pk) serializer = PostSerializer(post, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): #새 Post를 작성할때 내용을 다 작성하고 제출버튼을 누르면 호출되는 것이 이 post 메소드 serializer = PostSerializer( data=request.data ) #그러므로 이 serializer에는 내가 request를 보낸 data가 직렬화가 되야한다 if serializer.is_valid(): #serializer를 유효성 검사를 하고 serializer.save() #문제가 없으면 저장! return Response(serializer.data, status=status.HTTP_201_CREATED ) #문제없이 저장이 되었으면, serializer.data와 status를 같이 보내준다 return Response( serializer.errors, status=status.HTTP_400_BAD_REQUEST ) #유효성 검사 쪽에서 문제가 생기면 "HTTP_400_BAD_REQUEST"를 status에 담아 error와 함께 Response를 전송 '''질문! 그러면 Response의 첫번째 인자가 data에 해당하는데 어떤 의미의? data를 의미하는지 궁금'''
class NotificationSerializer(serializers.ModelSerializer): post = PostSerializer(read_only=True) other_user = UserSerializer(read_only=True) class Meta: model = Notification fields = ['id','message','seen','notification_type','other_user','post','user','timestamp']
def get( self, request ): #APIView를 상속받아 CBV를 사용할 때는 내부에서 사용할 HTTP 메소드의 이름으로 메소드(메소드의 이름)를 정의해야 함 posts = Post.objects.all() serializer = PostSerializer( posts, many=True ) #다수의 객체/query set를 Serializer 로 보내줄때는 뒤에 "many=True" 인자를 넣어야 함! return Response( serializer.data) #serializer에 있는 data를 그냥 Response로 보내준다
def get(self, request): posts = Post.objects.all() #쿼리셋 넘기기(many=True인자) serializer = PostSerializer(posts, many=True) #직접 Response 리턴 해주기 : serializer.data return Response(serializer.data) def post(self, request): serializer = PostSerializer(data=request.data) if serializer.is_valid(): #직접 유효성 검사 serializer.save() #저장 return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request, post_id): try: post = Post.objects.get(pk=post_id) post_serializer = PostSerializer(post) comments = Comment.objects.filter(post=post) comment_serializer = CommentWithChildSerializer(comments, many=True) return Response(comment_serializer.data) except Post.DoesNotExist: return Response({"message": "post does not exist"}, status=status.HTTP_404_NOT_FOUND)
def post(self, request, *args, **kwargs): instance = self.get_object() user = request.user if user in instance.liked.all(): liked = PostLike.objects.get(author_id=user.pk, post_id=instance.pk) liked.delete() else: PostLike.objects.create(author_id=user.pk, post_id=instance.pk) data = {'post': PostSerializer(instance).data} return Response(data)
def get(self, request): posts = Post.objects.all() #모든 객체를 가져옴 serializer = PostSerializer(posts, many=True) #객체를 serialize시킴 return Response(serializer.data) #데이터를 response
def get(self, request, pk, format=None): post = self.get_object(pk) serializer = PostSerializer(post) return Response(serializer.data)
def post(self, request, format=None): serializer = PostSerializer(data=request.data) if serializer.is_valid(): #직접 유효성 검사 serializer.save() #저장 return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request, format=None): posts = Post.objects.all() serializer = PostSerializer(posts, many=True) #쿼리셋 넘기기 return Response(serializer.data) # 직접 response(serializer, data) 리턴
def get(self, request): posts = Post.objects.all() serializer = PostSerializer(posts, many=True) # 쿼리셋 넘기기 (many=True인자) return Response(serializer.data) # 직접 Response 리턴해주기 : serializer.data
def get(self, request): posts = Post.objects.all() serializer = PostSerializer(posts, many=True) return Response(serializer.data)
def get(self, request, format=None): post = Post.objects.all() serializer = PostSerializer(post, many=True) return Response(serializer.data)
def get(self, request): posts = Post.objects.all() #모든 객체들(쿼리셋)을 가져옴 serializer = PostSerializer(posts, many=True) #퀘리셋 넘기기 (여러개의 객체를 직렬화 하려면 many = True 인자 꼭! 적어주기) return Response(serializer.data) #직접 Responser 리턴해주기 : serializer.data
def post(self, request): serializer = PostSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Resopnse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request, pk, format=None): post = self.get_object(pk) #해당 pk에 해당하는 object를 가지고 와서 # post = get_object_or_404(Post, pk) serializer = PostSerializer(post) #해당 object 직렬화 한다음 return Response(serializer.data ) #Response에 담아 리턴. 만약에 해당 pk에 해당하는 객체가 없으면 404가 리턴됨