1️⃣ QuerySet이 반환되는 경우의 주요 method(이전 편에서)
2️⃣ QuerySet이 반환되지 않는 경우의 주요 method
3️⃣ filter()와 get()의 차이점(다음 편에서)
create()
해당 method는 table에 data를 추가하는 method로 생성된 instace를 반환해 줌. category 변수에 반환된 값을 저장하고 생성된 data를 사용할 수 있으며, 인스턴스로 반환되므로 category.name으로 class 안에 변수에 접근할 수 있음.
In : In : Category.objects.create(name='콜드브루') Out : <Category: Category object (1)> In : category = Category.objects.create(name='콜드브루') In : category.name Out : '콜드브루' 참고) save method : INSERT 또는 UPDATE Category(name='콜드브루').save()
get()
매개 변수와 일치하는 instance를 불러올 때 사용됨.
In : Category.objects.get(id=1) Out : <Category: Category object (1)>
update()
지정된 필드에 대해 업데이트 쿼리를 수행하고 일치하는 행 수를 반환함.
(일부 행에 이미 새 값이있는 경우 업데이트 된 행 수와 같지 않을 수 있음).
In : Category.objects.filter(name='탄산').update(name='콜드브루') Out : 2 #총 업데이트된 row 개수
In : Category.objects.filter(name='qp').delete() Out : (1, {'products.Category': 1})
save()
INSERT 또는 UPDATE 를 수행하는 method로, 단일 객체에 대해서 업데이트를 수행할 때 많이 사용됨.
In : category = Category.objects.get(id=2) Out : <Category: Category object (2)> In : category.name Out : '브루드커피' In : category.name = 'new name' In : category.save() In : category.name Out : 'new name'
exists()
filter()와 함께 서용해서 filter 조건에 맞는 데이터가 있는지 조회, 존재하면 True 존재하지 않으면 False를 반환함.
In : Category.objects.filter(name='브루드커피').exists() Out : True
QuerySet이 반환되지 않는 경우에 대해 주요 method에 대해 알아보았다. 해당 method들은 QuerySet이 반환되는 method와 다루는 방법에 차이가 있었다. 특히 filter()와 get() method 사이에서 두 method 다 특정 변수를 가진 data를 불러오는 역할인데, data를 얻을 수 있는 방법이 달랐다. 다음 편에서 이 차이에 대해 언급해 볼 것이다!