Django filter(__day)
Web/Django

Django filter(__day)

뉴비뉴 2019. 12. 5.

Order 테이블 안에 created_at 이라는 Datetimefield를 오늘날짜와 비교하려고 찾아보던 중

filter(필드명__day)라는 것을 알게되었고 활용해보았습니다.

 

order.craeted_at 안에는 아래와 같은 데이터가 들어있습니다.

datetime.datetime(2019, 12, 5, 5, 39, 41, 323626, tzinfo=<UTC>)

 

여기서 저는 일수만 필요하기 때문에 Order.objects.filter(created_at__day=5) 를 활용하여 날짜가 5일인 것들만 꺼내오는 것에는

성공했습니다. 하지만 5를 fix값으로 둘 수 없고, 매일매일 그 날의 일수를 넣어야되기 때문에 

timezone.now().strftime("%d")를 사용해 '05' 라는 값을 꺼냈지만 사용할 수 없었습니다. 숫자 5라는 값이 들어가야되기 때문에

저는 int(timezone.now().strftime("%d"))로 꺼내 사용하였습니다.

 

전체코드

from django.utils import timezone
models.Order # Order import


i = int(timezone.now().strftime("%d"))
orders = Order.objects.filter(Q(created_at__day=i) & (status=2))

 

댓글

💲 추천 글