본문 바로가기
코딩공부

Django views.py에서 DB 데이터 다루기 / TIL_221021

by Dong_Devlog 2022. 10. 21.

이번 프로젝트에서 이미지를 업로드하고 이미지를 머신러닝을 통해 사람, 동물, 음식, 등의 카테고리로 분류하는 웹페이지를 만들게 됨. 그 중에 업로드 된 이미지를 휴지통에 넣는 기능을 구현!

 

 

만약 이미지를 삭제만 한다면 아래와 같이 쉽게 삭제할 수 있게 된다.

# DB테이블명.delete()
photo.delete()

 

하지만 삭제를 하는 것이 아니라 휴지통으로 옮겨야 하기 때문에 데이터를 다른 테이블로 이동시켜야 한다.

그래서 다른 trash 테이블을 새롭게 생성해주고 거기로 옮긴 후에 기존 photo 테이블의 정보는 삭제시켜주면 된다.

출력한 photo 안의 이미지 id 를 불러와 그 id 값의 photo 테이블의 img 필드 안에 저장된 이미지를 trash 테이블의 trash_img 필드에 저장한다.

 

아무튼 이런 방법을 통해서 DB데이터의 정보들을 옮길 수 있다는 것을 알게 됨 !!

if request.method == 'POST':
    photo = PhotoModel.objects.get(id=id)	# 삭제 시킬 photo의 id값을 불러옴
    trash = Trash()
    trash.user = request.user
    trash.trash_img = photo.img	# trash테이블의 trash_img 필드 안에 photo테이블의 img를 저장
    trash.save()

 

그 이후에 photo.delete()를 하게 되면 휴지통에 삭제하게 될 이미지를 올리고 사진첩의 데이틑 삭제하기 됨

# DB테이블명.delete()
photo.delete()

 

그리고 휴지통의 사진을 복원할 때도 같은 방법으로 할 수 있음.

영구 삭제를 할 때는 그냥 필드의 id값만 삭제해주면 된다.

이것보다 좋은 방법이 있겠지만 부족한 지식으로 최대한 머리를 굴려서 구현한 방법이다.

댓글