TIL #66 : [Django] 인스타그램 게시물 수정

셀레스틴 허·2021년 2월 11일
0
post-thumbnail

✅ 게시물 수정 역시 DetailView에서 진행한다.
✅ urls.py에 '/<int:posting_id>'를 추가했다. <- urls.py 보러가기

인스타그램 게시물 수정


게시물 수정 기능 파악

1. 게시물을 수정할 때 필요한 요소:

1.1 수정하고 싶은 게시물 사진/이미지 id
1.2 사용자의 username
1.3 사용자의 게시물 description 설명란

2. 코드

2.1) views.py

PATCH!

  1. 일단 프론트에서 보내주는 내용을 data라는 변수에 다 담는다.

  2. PostingDetailView의 경우 프론트에서 posting_id도 넘겨주기 때문에 우리는 일단 해당 posting_id가 데이터베이스에 존재(filter(id=posting_id))하는지 확인해야 한다. 그리고 게시물이 데이터베이스 안에 존재한다면 Posting.objects.get(id=posting_id)으로 해당 게시물의 id를 posting 변수에 담는다.

  3. 우리는 이제 객체인 posting 변수로 image_url, username.id, description을 접근할 수 있다.

  4. PATCH은 일괄 수정(PUT)이 아닌 일부 수정이기 때문에 .get() 함수를 이용해서 사용자가 해당 값을 보내줬으면 수정하고(ex. data['description']), 안보내줬으면 지금 현재 저장되어 있는 데이터값(ex. posting.description)을 그대로 keep 한다.

  1. keypoint는 username은 FK이기 때문에 User.objects.get() parameter 안에 id=data.get('user.User', posting.username.id)을 넣어서 해당 id값이 맞는지 확인해야 한다.

  2. 그리고 꼭! save()를 해 update를 저장해야 한다.

profile
Software Developer / 고통은 필연, 괴로움은 선택

0개의 댓글