작성
·
348
0
안녕하세요? 강의 8분 즈음, 강사님께서 글을 작성하시면서 save를 하시는데 저는 에러가 떠서 질문을 드립니다.
아래의 화면에서
이 화면에서 save를 하려하면 다음과 같이 에러가 발생하는데요
읽어보니까 message라는 column이 없다는 것 같은데
모델쪽을 살펴봐도 틀린부분이 어디인지를 잘모르겠어서 질문드립니다.
이렇게 모델쪽에서는 message라는 column이 있는 것 같은데 말이죠 ㅠㅠ
아 그리고 /admin /에서도 instagram밑의 posts를 누를 경우 강사님과 다르게 에러가 발생하더군요 ㅠㅠ
혹시 장고의 버전이 달라서 그런걸까요? 저는 현재 4.02버전이 설치되어 있습니다.
추가로, 강사님의 버전에 맞춰서 3.2버전을 설치해서 사용해야 하나요?
답변 1
1
안녕하세요.
본 이슈는 장고 버전과는 무관합니다.
장고에서 모델 클래스 필드내역과 데이터베이스 테이블 내역은 일치해야 합니다. 모델 필드 내역과 데이터베이스 테이블 내역을 일치하도록 도와주는 장고의 기능이 장고의 마이그레이션 기능입니다. 마이그레이션 기능에 대해서는 이후 에피소드인 "마이그레이션을 통한 데이터베이스 스키마 관리 (1), (2)" 에서 소개해드리고 있습니다. 모델 내역과 데이터베이스 테이블 내역이 일치하지 않을 경우, 보여주신 OpertionalError가 발생합니다.
"table instagram_post has no column named message" 에러 메세지는
Post 모델은 "장고 모델 (ORM) 소개" 에피소드의 13:30 시점에서
혹시 Post 모델에서 message 필드 정의를 누락하고 makemigrations/migrate 명령 수행하신 후에 뒤늦게 Post 모델 코드에 message 필드만 추가하시진 않았나요? 만약 그렇다면 Post 모델 클래스 코드에는 message 필드 정의가 있지만, 데이터베이스에는 message 필드가 없어서 본 오류가 발생하는 것입니다.
현재 instagram/migrations/ 내의 파일 내역과 0001_initia.py 파일 내용을 보여주실 수 있으실까요?
마이그레이션 기능은 처음에는 어렵습니다. 일단 다음 절차대로 데이터베이스를 날리시고, 새롭게 데이터베이스 데이터를 생성하는 쪽으로 임시대응을 해보시고, 이후 마이그레이션 기능을 차근차근 학습해보시며 이해도를 올려보시길 권해드립니다.
그리고, 질문 제목에는 본 질문을 요약해서 써주시면, 다른 분들에게도 본 질문이 도움이 될 수 있습니다. 부탁드리겠습니다.
화이팅입니다. :-)