Django 프론트& 백엔드 개발

[Model] Django ORM으로 데이터 수정(Update)과 삭제(Delete)하기

Data Jun 2026. 1. 4. 16:30

Django ORM은 데이터를 조회 → 수정 → 저장,
또는 조회 → 삭제하는 흐름이 아주 직관적입니다.
이번 글에서는 shell 환경에서 가장 기본적인 Update / Delete 예제를 살펴봅니다.

 

1. 데이터 수정(Update) 기본 흐름

1️⃣ 수정할 데이터 조회

from foods.models import Menu

data = Menu.objects.get(id=1)
<Menu: 코딩에 빠진 닭>

 

2️⃣ 필드 값 변경

data.name = "코빠닭"
<Menu: 코빠닭>

이 시점에서는 아직 DB에 반영되지 않음
→ 메모리 상의 객체만 변경된 상태

 

3️⃣ save()로 DB에 반영

data.save()

 

4️⃣ 전체 데이터 확인

Menu.objects.all()
<QuerySet [
  <Menu: 코빠닭>,
  <Menu: 너는 내게 빠나나>,
  <Menu: 코데리아>
]>

save()를 호출해야 실제 DB에 반영됨

 

2. 데이터 삭제(Delete) 기본 흐름

1️⃣ 삭제할 데이터 조회

data = Menu.objects.get(id=3)
<Menu: 코데리아>

 

2️⃣ delete() 실행

data.delete()
(1, {'foods.Menu': 1})

첫 번째 숫자: 삭제된 레코드 수
두 번째 딕셔너리: 어떤 모델에서 삭제됐는지

 

3. Update / Delete 흐름 요약

조회(get / filter)
→ 객체 수정
→ save()  (Update)

조회(get)
→ delete() (Delete)

 

4. 핵심 정리

  • get()으로 하나의 객체 조회
  • 필드 값 변경 후 반드시 save()
  • 삭제는 delete() 한 줄이면 끝
  • ORM은 SQL 없이도 CRUD 흐름을 자연스럽게 이해할 수 있음