본문 바로가기

WEB/Django

[오류] ImportError/ models.py 수정시 주의사항

배경 :

-app이 2개(studycafe, accounts)있다. 

-studycafe 앱 -> models.py ->ReviewPost라는 class가 있다. 

-accounts 앱 -> models.py -> Profile(장고 기본 User과 OneToOne으로 연결된 class)가 있다. 

 

문제 상황 : 

" 사용자가 어떠한 리뷰에 좋아요를 누르면 해당 리뷰를 Profile에 있는 like_posts 필드에 저장 " 

 

문제 : 

like_posts필드는 ReivewPost와 ManyToMany로 연결되어있어야 하므로 import studycafe.models import ReviewPost 를 하려고 했더니 다음과 같은 오류 발생 (python manage.py makemigrations 명령어 입력시 오류)

like_posts = models.ManyToManyField('ReviewPost', blank=True, related_name='like_users')

 

ImportError: cannot import name 'ReviewPost' from partially initialized module 'studycafe.models' (most likely due to a circular import)

 

해결 방안 : 

그냥 ReviewPost만 쓰는 것이 아니라 "앱.클래스"인  studycafe.ReviewPost 로 변경하여 해결 

 like_posts = models.ManyToManyField('studycafe.ReviewPost', blank=True, related_name='like_users')