▶ item = Restaurant.objects.get(pk=1) : pk=1번 값의 객체를 Restaurant 클래스에서 가져와 item 인스턴스에 넣음
▶ item.name : item 인스턴스에 저장된 객체들 중 name 필드를 출력
→ 'Deli Shop'이 출력됨
▶ item.name = 'My shop' : item 인스턴스에 저장된 객체들 중 name 필드의 값을 'My Shop'으로 수정함
→ 기존에 저장되어 있었던 'Deli Shop'에서 'My Shop'으로 변경됨
▶ item.sav() : save를 호출해야 실제로 값이 저장됨
▶ Restaurant.objects.filter(id=1).values() : Restaurant 클래스에서 id 값이 1번인 객체를 가져와 value 값들을 쿼리문으로 출력
▶ Restaurant.objects.get(pk=1) : Restaurant 클래스에서 pk=1인 객체 불러옴
▶ Restaurant.objects.get(pk=1).name : 위에서 불러온 객체의 name 필드만 출력
▶ item : Restaurant 클래스에서 가져온 객체를 item 인스턴스에 저장했기 때문에 Restaurant 클래스의 값을 출력함
▶ item.name : item과 Restaurant.objects.get(pk=1)은 같은 값을 의미하기 때문에 동일한 값을 출력
▶ Restaurant('one', 'addr') : Restaurant 클래스에서 첫 번째 필드와 두 번째 필드의 값을 각각 'one', 'addr'로 변경
▶ Restaurant(name='one', address='addr').save() : Restaurant 클래스에 name 필드의 값으로 'one', address 필드의 값으로 'addr'을 삽입하고 값을 저장함
▶ new_one = Restaurant(name='one', address='addr') : new_one이라는 새로운 인스턴스를 생성해 Restaurant 클래스의 name 필드 값과 address 필드 값을 넣음
▶ new_one : new_one 인스턴스에 저장된 값 출력
→ new_one이라는 새로운 인스턴스가 생성되었으므로 DB 내에서는 pk가 없다고 인식해서 저장된 값을 None으로 출력
▶ item : item 인스턴스에 저장된 값 출력
→ 모델의 인스턴스에 id값이 저장되어 있으면 save를 호출 시 update로 인식하고 수행
→ update에 실패했을 경우 해당 id에 해당하는 레코드가 존재하지 않는 것이므로 새로운 값을 insert
▶ item.id를 출력하면 1이 출력되지만 new_one.id는 아무것도 출력되지 않음
▶ item : item 인스턴스에 저장된 값을 출력하면 객체 하나가 존재함을 출력
▶ item.delete() : item 인스턴스에 저장된 값 삭제
▶ Restaurant.objects.all().values() : Restaurant 클래스에 있는 모든 객체의 값 출력
→ 출력된 QuerySet의 결과를 보면 id가 2부터 출력됨(id = 1에 해당하는 값 삭제됨)
'Django > inflearn' 카테고리의 다른 글
R : 페이지 구현하기 (0) | 2022.11.08 |
---|---|
R : 리스트 구현하기 (0) | 2022.11.07 |
Column Lookup으로 복잡한 조건 탐색하기 (0) | 2022.11.05 |
페이징하기 (2) | 2022.11.04 |
데이터 필터링하기 (0) | 2022.11.03 |