[Django] DateTimeField column으로 이것저것 해보기 / __range(), __lt, __gt, __month 등등
👇데이터 row들
__gte: 크거나 같다
__gt : 크다
__lt : 작다
__lte : 작거다 같다
>>> inactive_users = User.objects.filter(updated_at__lt = timezone.now() - datetime.timedelta(days=180))
>>> new_users = User.objects.filter(created_at__gte = timezone.now() - datetime.timedelta(hours=1))
아직 없는 상태
>>> new_users
<QuerySet []>
신규 유저 한 명 더 넣어주기
>>> usr = User(name='홍당무', gender='F', email='carrot@yahoo.com', password='dangeun13')
>>> bp = BodyProfile.objects.create(height_cm=167.7, weight_kg=54.5, feet_mm=240)
>>> usr.body_profile_id = pf.id
>>> usr.save()
가입 후 1시간 이내의 회원 다시 확인
>>> new_users = User.objects.filter(created_at__gte = timezone.now() - datetime.timedelta(hours=1))
>>> new_users
<QuerySet [<User: User object (6)>]>
가입 후 1시간 이내 회원들에게 한정 쿠폰 뿌리기
>>> limited_coupon = Coupon(name='가입 후 한시간 이내에만 받을 수 있는 쿠폰', discount_percent=30)
>>> limited_coupon.save()
>>> for usr in new_users:
... usr.coupon_set.add(limited_coupon)
>>> first_date = datetime.date(2021, 2, 20)
>>> last_date = datetime.date(2021, 4, 1)
>>> User.objects.filter(created_at__range=(first_date, last_date))
<QuerySet [<User: User object (1)>, <User: User object (2)>, <User: User object (3)>, <User: User object (4)>, <User: User object (5)>, <User: User object (6)>]>
created_at의 특정 년,월,일,시간 등으로 필터링 하기
>>> User.objects.filter(created_at__month=3)
<QuerySet [<User: User object (1)>, <User: User object (2)>, <User: User object (3)>, <User: User object (4)>, <User: User object (5)>, <User: User object (6)>]>
[MySQL, Django]ManyToManyField를 쓰는 이유 (2) | 2021.03.30 |
---|---|
[MySQL, Django] 관계 설정하기 (일대일, 일대다, 다대다) (0) | 2021.03.30 |
[MySQL, Django]csv 파일 DB에 밀어넣기 (bulk_create) (0) | 2021.03.29 |
댓글 영역