기존코드에서는 댓글, 대댓글 작성시 성공메시지만 전달했다.
프론트단에서 댓글생성과 동시에 바로 댓글 삭제 또는 수정을 하고 싶다면?
작성한 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"
}
}