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)

반응형