일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 재귀함수가 뭔가요
- 코딩테스트
- github
- classproperty
- javascript
- python all testcode
- MySQL server on 'db' (115)
- AWS
- classmethod
- S3
- METACLASS
- depends_on
- Django
- 갓재석
- depends
- AWS S3
- EC2
- 우아한 테크코스 2차 합격
- docker-compose
- docker
- Spring
- 우아한테크코스 2차
- TypeError: 'property' object is not iterable
- 프로그래머스
- github skyline
- python
- springboot 3.0.0
- OperationalError
- 2차 코딩테스트
- DB
Archives
hanbin.dev
[Django] 변경사항이 없어도 makemigrations가 가능한 오류 본문
프로젝트를 진행하면서 변경사항이 없어도 계속 makemigrations가 가능해 migration 파일이 계속 생성되는 오류가 발생했다.
이유를 생각해 보니 role 필드의 choices 옵션이 떠올랐다.
ROLE_CHOICES = { # <- set!
(STUDENT, "student"),
(TEACHER, "teacher"),
(ADMIN, "admin"),
}
role = models.PositiveSmallIntegerField(choices=ROLE_CHOICES)
위와 같이 ROLE_CHOICES를 set 자료형으로 만들었는데, 파이썬의 set 자료형은 순서가 존재하지 않는다.
그래서 migration 파일을 보면 status의 choices 옵션이 makemigrations 할때마다 이것만 바뀐 파일이 생성되는 것을 알 수 있다.
결론은 set 자료형이 아닌 tuple 혹은 list 자료형을 사용해주면 된다
ROLE_CHOICES = ( # <- tuple!
(STUDENT, "student"),
(TEACHER, "teacher"),
(ADMIN, "admin"),
)
role = models.PositiveSmallIntegerField(choices=ROLE_CHOICES)
'겪었던 오류' 카테고리의 다른 글
django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)") (0) | 2021.05.31 |
---|---|
[겪었던 오류] Python @lru_cache TypeError (0) | 2021.05.07 |
[Spring] travis ci로 자동 배포 하던 도중 변경사항 적용 안됨 (0) | 2021.02.16 |
[Spring] There is insufficient memory for the Java Runtime Environment to continue. (0) | 2021.02.14 |
[AWS] Permission denied (publickey,gssapi-keyex,gssapi-with-mic) (0) | 2021.02.13 |