<Django> [instamg] JsonResponse 2개이상 보내기

jm_yoon·2021년 3월 8일
0

기업협업

목록 보기
5/6
post-thumbnail

기존코드에서는 댓글, 대댓글 작성시 성공메시지만 전달했다.
프론트단에서 댓글생성과 동시에 바로 댓글 삭제 또는 수정을 하고 싶다면?
작성한 commnet의 정보(id, comment작성한 user account등)가 필요하다.

댓글생성이 성공하면 success message와 comment data를 함께준다면 가능하지 않을까..?

from django.http  import JsonResponse, HttpResponse

.
.
.
class CommentView(View):
    @login_check
    def post(self, request, post_id):
        try:
            data = json.loads(request.body)
            
            if data.get('comment_id') is not None:
                comment_id = Comment.objects.get(id=data.get('comment_id'))
            else:
                comment_id = None

            Comment(
                post_id    = Post.objects.get(id=post_id),
                user_id    = request.user,
                content    = data['content'],
                comment_id = comment_id
            ).save() #생성된 댓글 저장

            comment_last = Comment.objects.last() #생성된 댓글 object
            comment_data = {
                'comment_id'      : comment_last.id,
                'comment_content' : data['content'],
                'user_account'    : request.user.account,
                'user_profile'    : "media/"+ str(request.user.thumbnail_path) if str(request.user.thumbnail_path) else None
            } #생성된 댓글 정보
            return HttpResponse(json.dumps({'message': 'SUCCESS', 'comment_data': comment_data}))
        except KeyError:
            return JsonResponse({'message':'KEY_ERROR'}, status=400)
        except Post.DoesNotExist :
            return JsonResponse({'message':'POST_DOES_NOT_EXIST'}, status=400)

return HttpResponse(json.dumps({'message': 'SUCCESS', 'comment_data': comment_data}))

HttpResponse로 보내줄 데이터들을 json.dumps에 싸서 보내주기???

{
    "message": "SUCCESS",
    "comment_data": {
        "comment_id": 913,
        "comment_content": "댓글달기 http다시도전 이번엔 제발",
        "user_account": "burgerqueen",
        "user_profile": "media/thumbnail/slackselfi_zPwpVQY.jpeg"
    }
}

참고

profile
Hello!

0개의 댓글