예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
파일: views.py 프로젝트: zwonlala/drf_study
 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']
예제 #5
0
파일: views.py 프로젝트: zwonlala/drf_study
 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로 보내준다
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
 def get(self, request):
     posts = Post.objects.all()  #모든 객체를 가져옴
     serializer = PostSerializer(posts, many=True)  #객체를 serialize시킴
     return Response(serializer.data)  #데이터를 response
예제 #10
0
 def get(self, request, pk, format=None):
     post = self.get_object(pk)
     serializer = PostSerializer(post)
     return Response(serializer.data)
예제 #11
0
 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)
예제 #12
0
 def get(self, request, format=None):
     posts = Post.objects.all()
     serializer = PostSerializer(posts, many=True)  #쿼리셋 넘기기
     return Response(serializer.data)  # 직접 response(serializer, data) 리턴
예제 #13
0
 def get(self, request):
     posts = Post.objects.all()
     serializer = PostSerializer(posts, many=True) # 쿼리셋 넘기기 (many=True인자)
     return Response(serializer.data) # 직접 Response 리턴해주기 : serializer.data
예제 #14
0
 def get(self, request):
     posts = Post.objects.all()
     serializer = PostSerializer(posts, many=True)
     return Response(serializer.data)
예제 #15
0
 def get(self, request, format=None):
     post = Post.objects.all()
     serializer = PostSerializer(post, many=True)
     return Response(serializer.data)
예제 #16
0
 def get(self, request):
     posts = Post.objects.all() #모든 객체들(쿼리셋)을 가져옴
     serializer = PostSerializer(posts, many=True) #퀘리셋 넘기기 (여러개의 객체를 직렬화 하려면 many = True 인자 꼭! 적어주기)
     return Response(serializer.data) #직접 Responser 리턴해주기 : serializer.data
예제 #17
0
 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)
예제 #18
0
파일: views.py 프로젝트: zwonlala/drf_study
 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가 리턴됨