728x90
반응형
Example : Last_Login !
django의 user model은 last_login이라는 필드를 지원한다. 해당 유저가 마지막에 로그인한 시간을 기록하는 테이블이다. Simple JWT는 토큰을 발급할 때 TokenObtainPairSerializer를 이용하는데 이 Serializer를 타고 타고 들어가다 보면 django의 FrameWork의 update_last_login 메서드를 가져다 쓰고 있다.
# /django/contrib/auth/models.py
def update_last_login(sender, user, **kwargs):
"""
A signal receiver which updates the last_login date for
the user logging in.
"""
user.last_login = timezone.now()
user.save(update_fields=['last_login'])
이게 무슨 문제가 될까?
아래 이미지는 TokenObtainPairSerializer 를 이용해 로그인을 하고 last_login에 기록된 시간을 캡처한 것이다.
해당 글을 쓰면서 테스트한 시간은 한국 시간 기준으로 저녁 22:30 쯤 되고 있다. 하지만 위에 적용되는 시간은 한국시간이 아니다. 아무런 처리를 하지 않으면 UTC 기준으로 날짜가 찍히고 있는 것이다.
이는 아무런 설정을 적용하지 않았을 때 Django의 기본 설정값을 기준으로 찍히고 있는 결과이기도 하다. 한국시간으로 조정하려면 다음과 같이 Settings.py 파일에 한국 시간을 적용하자.
728x90
반응형
'Frame Work > Django' 카테고리의 다른 글
[Django] app의 model만 관리하는 app을 만들어보자 (3) | 2021.09.16 |
---|---|
django, ForeignKey N+1 (1) | 2021.08.16 |
django.db.utils.DataError: (1366, "Incorrect string value: ~~~) (0) | 2021.04.28 |
django.db.utils.OperationalError: (1060, "Duplicate column name) (0) | 2021.04.27 |
setting.AUTH_USER_MODEL Error (0) | 2021.04.17 |