반응형
장고 ORM, 요일별 그룹
DAY별로 제품을 그룹화하려고 하는데 date_created는 datetime 필드입니다.
Product.objects.values('date_created') \
.annotate(available=Count('available_quantity'))
반환:
[
{'date_created': datetime.datetime(2012, 4, 14, 13, 3, 6), 'available': 1},
{'date_created': datetime.datetime(2012, 4, 14, 17, 12, 9), 'available': 1},
...
]
원하는:
[
{'date_created': datetime.datetime(2012, 4, 14), 'available': 2}, ...
]
편집: 데이터베이스 백엔드 MYSQL
이 질문에서 영감을 얻어 MySQL에서 사용해 보십시오.
from django.db.models import Count
Product.objects.extra(select={'day': 'date( date_created )'}).values('day') \
.annotate(available=Count('date_created'))
San4ez의 답변과 유사한 접근 방식이지만, 반환 날짜는 'datetime.datetime(YYY, MM, DD)' 대신 'YYYY-MM-DD'로 변경됩니다.
Product.objects.extra(select={'day': "TO_CHAR(date_created, 'YYYY-MM-DD')"})
.values('day') \
.order_by('day') \
.annotate(available=Count('date_created'))
장고 1.4에서는..dates('date_created', 'day')
대신에.values()
.
다음 코드 조각을 시도해 보십시오.
Product.objects.annotate(available=Count('available_quantity')) \
.dates('date_created', 'day')
다음을 반환해야 합니다.
[
{'date_created': datetime.datetime(2012, 4, 14), 'available': 2}, ...
]
해봐도 좋습니다.
Product.objects.extra(select={'day': "TO_CHAR(date_created, 'YYYY-MM-DD')"})\
.values('day')\
.order_by('day')\
.annotate(bets=Count('date_created'))
저는 Postgres 또는 Sqlite로 작업하기 위해 우회 방법을 만들어야 했습니다. Count() 함수는 datetime 필드를 고려하기 때문에 date_created가 시간 정보를 여전히 보유하고 있으므로 date_created가 시간 정보를 보유하고 있으므로 date와 함께 "day" 입력을 생성하더라도 상관이 없습니다.여러가지 시도 끝에 시간을 건너뛰는 방법에 도달했습니다.
장고 2.2
from django.db.models import Count
# Change date() to to_char(created_at, 'YYYY-MM-DD') if using Postgres
Product.objects.extra(select={'day': 'date( date_created )'})\
.values('day') \
.order_by('date_created__date')\
.annotate(available=Count('date_created__date'))
언급URL : https://stackoverflow.com/questions/10154227/django-orm-group-by-day
반응형
'programing' 카테고리의 다른 글
WP REST API V2를 통해 사용자 정의 필드로 Custom Post Type을 올바르게 작성하는 방법 (0) | 2023.11.01 |
---|---|
wp_nav_메뉴에서 li 요소에 클래스 추가 (0) | 2023.11.01 |
PowerShell Out-File 명령에서 줄 바꿈 방지 (0) | 2023.11.01 |
"소시지 만드는 법" apache/php/mysql 상호 작용 견학 (0) | 2023.11.01 |
관리자 편집 순서로 표시되는 값을 WooCommerce 체크아웃에 사용자 지정 확인란 추가 (0) | 2023.11.01 |