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))
'Web > Django' 카테고리의 다른 글
Django allauth User has no field named 'username' 해결방법 (0) | 2019.12.30 |
---|---|
Django-crontab 사용 (0) | 2019.12.06 |
Django CBV : DetailView에서 paginate_by 사용하기 (0) | 2019.11.29 |
Django - Custom Manager, QuerySet (0) | 2019.11.20 |
DevelUP 퀘스트2 - 사랑하는 사람의 기념일에 문자, 이메일 전송 (0) | 2019.11.02 |
댓글