System check identified some issues:
WARNINGS:
~~.start_date: (fields.W161) Fixed default value provided.
HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now` Migrations for 'challenges': ~~/migrations/0062_auto_20210107_0701.py
DateTimeField에 기본값을 추가하고, makemigrations를 했는데 warning과 함께 'datetime 필드 기본값이 고정값이다' 라는 메시지가 나옵니다.
기본값을 datetime.utcnow()로 했더니 이렇게 마이그레이션 파일에 기본값이 고정된 형태로 저장됩니다.
그래서 아래처럼 바꿔줘야 합니다
# models.py
from django.utils import timezone
class Something(models.Model):
date = models.DateTimeField(default=timezone.now, help_text="날짜 및 시간")
now()가 아니라 now를 넣어주는 것에 주의해주세요. 현재 시간에 timedelta를 더하고 싶으면 람다를 만들어서 넣는 것이 아니라, 함수를 만들어 함수를 넣어줘야 합니다. 람다는 장고가 Serialize를 하지 못한다고 합니다 (stackoverflow)
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] enum value로 @dataclass 사용하기 (0) | 2021.01.13 |
---|---|
[Django] nullable 필드를 기본값 없는 non-nullable 필드로 변경할 때 유의사항 (0) | 2021.01.07 |
[Django] "value too long for type character varying" (0) | 2021.01.05 |
[Django] circular import 해결방법 (0) | 2021.01.05 |
[Python] set 대칭차 (symmetric difference) (0) | 2020.11.01 |