React와 Django를 연동하여 여행전날 이라는 프로젝트 중
게시글 작성 과 게시글 댓글 코드를 정리 하기 위해서 글을 작성 하게 되었습니다.
1. 모델
Articles 라는 테이블 명을 만들었습니다.
id는 primary_key 라고 명시를 하였습니다. 굳이 명시 하지 않아도 디폴트 값으로 적용된다.
title은 게시글의 제목을 나타내는 필드입니다.
content은 게시글의 내용 나타내는 필드입니다.
created_at 과 updated_at 은 생성 날짜 와 수정 날짜를 위한 필드입니다.
like_users 은 User라는 테이블과 M : N 관계설정하였고 게시글의 좋아요 유무를 위한 필드(미 구현)
user은 User라는 필드의 외래키를 갖고 있는 필드입니다.
Comment 라는 테이블 명을 만들었습니다.(게시글의 댓글 모델)
user은 User라는 필드의 외래키를 갖고 있는 필드입니다.
content은 댓글 내용 나타내는 필드입니다.
articles은 게시글의 댓글 이므로 외래키 설정 하였습니다.
created_at 과 updated_at 은 생성 날짜 와 수정 날짜를 위한 필드입니다.
like_users 은 User라는 테이블과 M : N 관계설정하였고 댓글 좋아요 유무를 위한 필드(미 구현)
2.시리얼라이저
우선 ReadOnlyField는 차후에 설명 하도록 하겠습니다. 단순히 말씀드리면 읽기만 가능하다고 보심됩니다.
시리얼라이저 코드는 이렇게 작성하였고, 직역하면 직렬화 이다, 단순하게 말하면 데이터 셋을 json화 시켜준다.
Articles 모델은 번호, 제목, 내용, 생성날짜 , 수정날짜, 외래키인 user 필드를 직렬화 시켰습니다.
Comment 모델은 번호, 게시글 번호, 댓글 내용, 생성날짜, 수정날짜, user필드, 댓글 번호
댓글을 좀더 세부적으로 url로 접속하여 내용을 꺼내오기 위해서 댓글 번호, 게시글 번호를 가지고 왔습니다.
3. URL 설정
URL 설정 이므로 설명은 생략 하겠습니다.
4. view
라이브러리 이나 모델 이나 등등 불러온 친구들 목록 입니다.
1.ReviewList 클래스
1) get은 Articles라는 모델엘 작성된 모든 것을 가져오는 코드 입니다.
2) post은 게시글 작성을 했을 떄 시작되는 로직입니다. 즉 게시글 내용 등이 유효하다면 현재 로그인 된 유저의 user.pk
가져오고 이를 save()에 넣어 외래키를 넣어줍니다.
// 사진 상으로는 로그인 유무를 묻지 않았습니다. 이는 추후로 코드 작성할 예정입니다.
2.ReviewDetail 클래스
1. get_object 라는 함수는 하나의 오브젝트만 가져옵니다. 하지만 없을 경우 404 페이지로 리턴 합니다.
2. get은 get_object 함수에서 얻어온 결과값을 시리얼라이저를 통한 값을 보여줍니다.
3. put은 게시글 주제 나 내용의 일부만 바꿔주는 로직입니다.
4. delete은 말 그대로 삭제 해주는 것입니다.
3.ReviewCommentList 클래스
1) get은 Articles라는 모델엘 작성된 모든 것을 가져오는 코드 입니다.
2) post은 게시글 작성을 했을 떄 시작되는 로직입니다. 즉 게시글 내용 등이 유효하다면 현재 로그인 된 유저의 user.pk
가져오고 이를 save()에 넣어 외래키를 넣어줍니다.
// 사진 상으로는 로그인 유무를 묻지 않았습니다. 이는 추후로 코드 작성할 예정입니다.
4.ReviewComment 클래스
1. get_object 라는 함수는 하나의 오브젝트만 가져옵니다. 하지만 없을 경우 404 페이지로 리턴 합니다.
2. get은 get_object 함수에서 얻어온 결과값을 시리얼라이저를 통한 값을 보여줍니다.
3. put은 게시글 주제 나 내용의 일부만 바꿔주는 로직입니다.
4. delete은 말 그대로 삭제 해주는 것입니다.
'Django' 카테고리의 다른 글
Django 에서 date 객체 활용 하기 (0) | 2023.04.18 |
---|---|
Django의 F() 객체란? (0) | 2023.04.14 |
Django channels 이용하여 채팅하기 (0) | 2023.03.25 |
Django 와 MYSQL 연결 (0) | 2023.03.04 |
[D.R.F] 커스텀 유저 구현하기 - 회원가입, 로그인 (0) | 2023.01.05 |