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

nick_kcin님의 프로필 이미지
nick_kcin

작성한 질문수

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

07-27 관계를 표현하는 모델 필드 - models.ManyToManyField 커스텀 관계 모델로 이전하기 (실습)

커스텀 모델 생성 시 에러 발생 이유

작성

·

86

·

수정됨

0

07-27 관계를 표현하는 모델 필드 - models.ManyToManyField 커스텀 관계 모델로 이전하기 (실습)

 

2분 18초쯤에 오류 예시를 보여주셨는데 혹시 에러가 나는 이유가 뭔지 알 수 있을까요?

 

기존 M2M 필드에 through를 바로 추가할 수 없기 때문인가요?

답변 1

1

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

안녕하세요.

M2M 관계 지정 시에 through 옵션을 지정하지 않으면, 디폴트 관계 모델(blog_post_tag_set 테이블) 이 자동으로 만들어집니다.

질문해주신 아래 오류는

ValueError: Cannot alter field blog.Post.tag_set into blog.Post.tag_set - they are not compatible types (you cannot alter to or from M2M field, or add or remove through= on M2M fields)

Post 모델과 Tag 모델 간의 관계가 blog_post_tag_set 테이블에 이미 저장이 되어있는 상황에서, 새로운 관계 모델을 추가했을 때 기존 테이블에 저장되어있던 관계 데이터를 Django Migration이 자동으로 새로운 관계 테이블로 이전할 수 없다는 오류입니다.

그래서, 영상 뒷 부분에서 RunPython 오퍼레이션을 통해, 직접 코드로 관계 데이터를 복사해주는 작업을 수행했던 것입니다.

살펴보시고 추가 질문 주세요.

화이팅입니다. :-)

nick_kcin님의 프로필 이미지
nick_kcin

작성한 질문수

질문하기