data instance를 추가하는 시각을 데이터의 datetimefield에 추가해서 저장하고 싶었다.
python-3.6.9
django-3.0.3
django-rest-framework-3.11.0
input_data = {
"tempHumid": "20",
"heartRate": "40",
"sound": "50",
"stepCount": "50",
}
일 때,
output_data = {
'data': {
'nowTime': '2020-09-01T15:19:11.677268',
'tempHumid': '20',
'heartRate': '40',
'sound': '50',
'stepCount': '50'
},
'status': 'success'
}
을 response로 받는 결과가 나온다. 이때, nowTime은 한국시간에 해당해야 하고, post한 해당 시각이어야 한다.
그래서
# Myproject/settings.py
# Internationalization
USE_TZ = False
TIME_ZONE = 'Asia/Seoul'
이때 USE_TZ를 꼭 False로 바꿔줘야 추후 models.py 코드 중 Timezone.now()가 한국시간으로 제대로 저장이 된다.
# WearerData/models.py
class WearerData(models.Model):
user = models.ForeignKey(to=CustomUser, on_delete=models.CASCADE)
# ****아래 코드가 해당 코드****
nowTime = models.DateTimeField(
_('nowTime'), default=timezone.now(), null=True)
# (생략)
DateTimeField에 default로 timezone.now()를 하고, null을 허용해줘야 한다.
그러면 위 결론에서와 같이 time도 잘 저장이 된다.
auto_now, auto_now_add는 낯설어서 아직 쓰지 못했는데, stackoverflow에 가니까 django 1.X 버전에서는 버그가 많았던 것 같다. 나중에 auto_now등을 연구해봐야겠다.