[django] fields.E300, fields.E307

1144 단어 errordjangodjango

상황

게시판을 만들기 위해 board라는 프로젝트에 blog, user라는 앱을 두 개 만들었다. 유저 가입과 개인 페이지도 구현해보려고 구분지었는데 유저가 게시물을 여러 개 생성할 수 있으므로 blog/models.py에 Post 클래스의 author 변수에 user를 설정하려고 시도했다. 이를 위해서 아래 코드를 작성했다.

from user.models import User

class Post(models.Model):
	author = models.ForeignKey("User", on_delete=models.CASCADE)
	...
    	...

정상적으로 작성했는지 확인하기 위해 실행시켜보았더니 아래와 같은 붉은 메세지를 받았다.

원인 및 해결

에러라고 하는 부분이 ForeignKey를 지정한 부분이기에 두 에러가 모두 같은 원인으로 발생한 것 같았다. 먼저 친절하게도 에러 번호도 있기 때문에 검색해보니 해결책을 찾을 수 있었다.

원인은 ForeignKey를 사용할 때 앱의 이름을 적어주지 않으면 같은 models.py안에서 찾는다고 한다. 따라서 외부의 모델 (다른 앱의 모델)을 사용할 경우 앱의 이름을 적어주어야 한다고 한다.

수정한 것은 다음과 같다.

from user.models import User

class Post(models.Model):
	author = models.ForeignKey("user.User", on_delete=models.CASCADE)
	...
    	...

좋은 웹페이지 즐겨찾기