[django] fields.E300, fields.E307
상황
게시판을 만들기 위해 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)
...
...
Author And Source
이 문제에 관하여([django] fields.E300, fields.E307), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@keybomb/django-fields.E300-fields.E307저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)