Django Model Method

3841 단어 djangoTILTIL

저번에 작성한 models.py의 클래스를 토대로 만들어진 DB Table에 python shell에서 다양한 method기능을 사용해보았다.


python shell 실행

python manage.py shell

values()

a = Category.objects.values("name")

for i in a:
	print(i)

object의 원하는 컬럼만 가져오기 위해 value를 사용할 수 있다. values()는 model Instnace가 아닌 Dictionary로 이루어진 QuerySet을 Return해준다.


values_list()

p = Product.objects.values_list('id','korean_name')

for i in p:
     print(i)

values_list()는 value만 가진 tuple형태로 리턴한다.

save()

# insert

m1 = Menu(name="상품")
m1.save()
# update

product = Product.objects.get(id=10)

product.name # 나이트로 바닐라 크림
product.korean_name = "돌체 콜드 브루"
product.save()
product.korean_name # 돌체 콜드 브루

INSERT 또는 UPDATE 를 수행하는 method로, 단일 객체에 대해서 업데이트를 수행할 때 많이 사용된다.


get_or_create()


get_or_create method는 객체(object)를 조회할 때 유용하게 사용되는 메서드이다. 이 메서드는 (object, created) 라는 Tuple 형식으로 return한다.
첫번째 인자(object)는 우리가 꺼내려고 하는 모델의 Instance이고, 두번째 인자(created)는 boolean flag이다.


Instance가 get_or_create()에 의해 생성되었다면 True를 return하고, 기존 Database에서 get했다면 False를 return한다.

aggregate()

QuerySet을 통해 계산된 평균, 합계 등을 Dictionary의 형태로 출력해준다.

좋은 웹페이지 즐겨찾기