$ py manage.py makemigrations
SystemCheckError: System check identified some issues:
ERRORS:
restaurants.Restaurant.cuisine: (fields.E009) 'max_length' is too small to fit the longest value in 'choices' (5 characters).
# models.py
CUISINE_CHOICES = [
(KOREAN, "한식"),
(WESTERN, "양식"),
(JAPANESE, "일식"),
(CHINESE, "중식"),
(ASIAN, "아시안음식"),
(SNACKS, "분식"),
(CAFE, "카페"),
(FAST_FOOD, "패스트푸드"),
(OTHER, "기타"),
]
cuisine = models.CharField(
max_length=2, choices=CUISINE_CHOICES, help_text="어떤 종류의 음식인가요?"
)
model 작성을 한 뒤, makemigrations을 했는데 시스템 일부에 문제가 있다는 에러를 마주했다. 이번 에러는 choices에서 발생했다. max_length' is too small to fit the longest value in 'choices' (5 characters).
이 문구가 많은 힌트가 되었기 때문에 에러를 해결하는데 많은 시간이 걸리지 않았다.
choices 속성에서 정의된 옵션 중 가장 긴 값이 해당 필드의 max_length보다 크기 때문에 에러가 발생했던 것이다. 이 오류를 해결하려면 max_length를 충분히 크게 설정해야 했다.
cuisine = models.CharField(
max_length=10, choices=CUISINE_CHOICES, help_text="어떤 종류의 음식인가요?"
)
max_length를 옵션의 최대 길이에 맞게 설정하여 오류를 해결했다.
Caht GPT에게 max_length를 어느 정도하는게 좋을지 추천받아서 10으로 설정했다.
이 경우 "아시안음식"을 저장하는 데 필요한 공간을 충분히 확보하게 된다.