Westagram #5


投稿にコメントを登録する


djangoは、処理したデータに基づいてアプリケーションを分離管理します.
投稿テーブルとコメントテーブルを別々にして、個別のアプリケーションで管理できます.
このプロジェクトでは、同じアプリケーションで2つのデータを管理します.

コメントモデルの作成


投稿を管理するPostingアプリケーションで投稿を管理するテーブルを作成するには、次のモデルを生成します.
Commentクラスを作成します.
コメントを書いたuser
投稿postコメント作成時間created_at
コメント内容contentを作成します.Foreign Keyを使用して、投稿のユーザーとすでに加入している人(アカウント)を連絡し、登録された投稿と連絡します.

コメントビューの作成


登録コメント

if Account.objects.filter(email = data['email']).exists():
# 요청받은 이메일이 존재하는지 확인

  user = Account.objects.get(email = data['email'])
  # 존재한다면 user에 해당 사용자 정보 할당
  
  if Post.objects.filter(id = data['post_number']).exists():
  # 요청받은 게시물 번호에 맞는 게시물이 존재하는지 확인
  
    post = Post.objects.get(id = data['post_number'])
    # 존재한다면 post에 해당 게시물 정보 할당
    
    # 요청받은 정보들로 데이터 생성
    Comment(
    	    user     = user,
            post     = post,
            content  = data['content'],
            ).save()
            
    # 에러메시지와 코드 반환
    return JsonResponse({'MESSAGE': 'SUCCESS'}, status=200)
  return JsonResponse({'MESSAGE': 'INVALID_POST'}, status=401)
return JsonResponse({'MESSAGE': 'INVALID_USER'}, status=401)

コメント


特定の投稿に基づいて分類するクラスを作成します.
def get(self, request):			# get 메소드 사용
  data = json.loads(request.body)	# 요청의 body
  post_id = data['post_number']		# 요청받은 게시물 번호에 해당하는 게시물
  
  comment_list = list(Comment.objects.filter(post_id = post_id).values())
  # 해당 게시물에 달린 모든 댓글 정보
  
  return JsonResponse({'comment_list': comment_list}, status=200)
  # 댓글 리스트 및 코드 반환 
2番の投稿に登録されたコメント情報をロードすれば、上記のコメントリストを確認できます.

整理する