Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발 공부

클론코딩 - 3.2 리스트를 이용해 DB받기(kiosk프로젝트) 본문

백엔드/Django

클론코딩 - 3.2 리스트를 이용해 DB받기(kiosk프로젝트)

방구석개발입문 2022. 11. 28. 02:15

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