인프런 커뮤니티 질문&답변

97bennie님의 프로필 이미지
97bennie

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

프로필 수정 구현과 장고3에서 추가된 TextChoices 활용

장고 primary key 오류 메시지

작성

·

519

0

강사님 안녕하세요!
 
제가 장고를 실행하던 도중
 
계속 이런 오류 메시지가 출력이 되는것을 확인했습니다..
 
이 경우 common.py 내용을 수정해야 하는걸까요?
 

답변 1

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

장고 3.2 부터 auto field의 타입을 지정할 수 있는 기능이 생겼습니다. auto field는 장고 모델에서 디폴트 pk 필드로서 사용이 됩니다. 3.2 이전에서는 django.db.models.AutoField 였으며, 3.2 부터는 django.db.models.BigAutoField가 됩니다.

관련 공식문서 : https://docs.djangoproject.com/ko/4.0/releases/3.2/#customizing-type-of-auto-created-primary-keys

아마도 장고 3.2 이전 버전으로 현재 프로젝트를 생성하셨고, 지금 서버 구동 시에는 장고 3.2 이상을 설치하신 듯 보입니다. 강의에서는 3.0.x 기준으로 설명드리고 있습니다.

장고 3.2 이상에서는 프로젝트를 생성하시면 settings에 DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" 설정이 자동으로 추가됩니다.

그런데 장고 3.2 이전에 생성하신 각종 모델들은 django.db.models.AutoField 타입으로 되어있습니다. BigAutoField 타입으로 지정하시면 추가적으로 타입 변경을 위한 DB 마이그레이션이 필요합니다.

장고 3.2 이상을 쓰신다면

settings에 DEFAULT_AUTO_FIELD = "django.db.models.AutoField" 설정을 추가하고, 별도의 DB마이그레이션없이 프로젝트를 진행하다가 BigAutoField가 필요한 시점에 설정을 변경해서 DB마이그레이션을 수행하셔도 되구요.

혹은 지금 BigAutoField로 변경하셔서 DB마이그레이션을 수행하셔야 됩니다.

그리고, 질문 제목에는 본 질문을 요약해서 써주시면, 다른 분들에게도 본 질문이 도움이 될 수 있습니다. 부탁드리겠습니다.

화이팅입니다. :-)

97bennie님의 프로필 이미지
97bennie

작성한 질문수

질문하기