Django/inflearn

데이터 수정/삭제하기

곽수진 2022. 11. 6. 00:09
반응형

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