개발 공부
클론코딩 - 3.2 리스트를 이용해 DB받기(kiosk프로젝트) 본문
sale_list = sale.objects.values('menu_id').filter(gender__exact='male', age__range=(20, 29)).annotate(
num_menu_id=Count('menu_id')).order_by('-num_menu_id')
위의 코드는
select menu_id, count(menu_id)
from menu_sale
where gender='male' and age>=20 and age <=29
group by menu_id
order by count(menu_id) desc
위의 코드와 같다.. Count를 쓰기위해 import해주고 사용함
value() API를 사용해 리스트로 받아와 사용하였음
여기서
AttributeError: 'dict' object has no attribute
위와 같은 오류가 나온다면
점표기법을 사용하여 dict의 key에 엑세스 할 때 발생함으로
괄호 표기법으로 바꾸면 된다.
ex)
print(sale_list[0].menu_id)
대신
print(sale_list[0]['menu_id'])
menu_list = Menu.objects.all()
menu1 = menu_list.get(id=sale_list[0]['menu_id'])
menu2 = menu_list.get(id=sale_list[1]['menu_id'])
menu3 = menu_list.get(id=sale_list[2]['menu_id'])
이 코드는
sale_list가 가장 많이 팔린 메뉴 id를 내림차순으로 정리한 것임으로
가장 많이 팔린 메뉴를 menu1부터 넣어준다는 것!
'백엔드 > Django' 카테고리의 다른 글
클론코딩 - 3.DB생성,연결 (0) | 2022.11.28 |
---|---|
ORM(Object Relational Mapping) (0) | 2022.11.24 |
html - div활용(글자 중앙, 태그걸기) (0) | 2022.11.22 |
클론코딩 - 인스타1 (0) | 2022.11.17 |