본문 바로가기
카테고리 없음

Tue/06/Dec/22 최종 프로젝트 - 4

by Hawie 2022. 12. 7.

오늘도 최종프로젝트 백엔드 부분을 진행 하며 하루를 보냈다.

 

오늘 월드컵 새벽 축구 여파로 힘들어서 오후에 시작 하였다.

 

오늘 주요 작업 내용은 댓글 작성시 대댓글 디폴트 작성 오류 나서 

 

serializer 수정 하였다.

 

댓글 작성 serializer ,댓글 보기 serializer 작성 하여 오류를 해결 할 수 있었다.

 

그리고 게시글 신고시 해당 게시글에 패널티 점수가 쌓이고, 신고 내용을 기재 는 기능 구현 하였다.

 

 

 

# Models.py

class ReportFeed(models.Model): # 신고 내용 저장 테이블
    feed = models.ForeignKey(Feed, on_delete=models.CASCADE, blank=True, related_name="reports")
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    report = models.TextField('신고내용')
    created_at = models.DateTimeField('신고일자', auto_now_add=True)
    
    class Meta:
        db_table = "report_feeds"
        
        
       
     
   # Serializers.py
   
   
   class ReportSerializer(serializers.ModelSerializer): #신고 시리얼라이즈
    

    user = serializers.SerializerMethodField()
    

    def get_user(self, obj):
        return obj.user.nickname

    class Meta:
        model = ReportFeed
        fields='__all__'
        
        
        
    #Views.py
    
    class ReportView(APIView): # 게시글 신고 View
    permission_classes = [permissions.IsAuthenticated]
    authentication_classes = [JWTAuthentication]

    
    def post(self, request, feed_id):
        serializer = ReportSerializer(data=request.data)
        feed= get_object_or_404(Feed, id=feed_id)

        if serializer.is_valid():
            feed.report_point += 1
            feed.save()
            serializer.save(user=request.user, feed_id=feed_id)
            
        return Response({"message":"신고가 완료되었습니다."}, status=status.HTTP_200_OK)

 

 

댓글