inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Django REST Framework 핵심사항

viewset 으로 Post API 만들기

fields E300, E307 에러

296

DongMin Sim

작성한 질문수 1

0

 
 
안녕하세요 강사님, viewset 으로 Post API 만들기 강의 진행중에 발생한 에러입니다. 
강의 내용대로 post url을 라우터에 등록하고, serializers 생성, view 생성 이후에 재가동하니 다음과 같은 에러가 발생하면서 동작하지 않습니다. 검색해보니 ForeignKey 로 참조하는 모델 클래스에 앱이 명시되지 않아서 그런거 같다는 거 같은데 자세한 원인은 모르겠습니다.
https://stackoverflow.com/questions/56972174/errors-book-book-author-fields-e300-book-book-author-fields-e307
 
1. 해당 오류의 원인과 lazy reference란 무엇인지요?
2. 해결방안이 궁금합니다. (다른 앱의 model을 참조할때 발생하는 문제라면 어떻게 해야하는지)
 
Post class는 `from blog.models import Post` 로 import 하여 가져왔습니다.
from django.db import models

# blog/models.py
class Post(models.Model):
    category = models.ForeignKey('Category', on_delete=models.SET_NULL, blank=True, null=True)
    tags = models.ManyToManyField('Tag', blank=True)
    title = models.CharField('TITLE', max_length=50)
    description = models.CharField('DESCRIPTION', max_length=100, blank=True, help_text='simple one-line text.')
    image = models.ImageField('IMAGE', upload_to='blog/%Y/%m/', blank=True, null=True)
    content = models.TextField('CONTENT')
    create_dt = models.DateTimeField('CREATE DT', auto_now_add=True)
    update_dt = models.DateTimeField('UPDATE DT', auto_now=True)
    like = models.PositiveSmallIntegerField('LIKE', default=0)

    class Meta:
        ordering = ('update_dt',)

    def __str__(self):
        return self.title
 
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

rest-api django

답변 2

0

김석훈

==> Post class는 `from blog.models import Post` 로 import 하여 가져왔습니다.

이게 어느 파일에 코딩한 건가요 ?

Model 이 서로 다른 파일이라면, models.ForeignKey(Post, ~) 또는 models.ForeignKey('blog.Post', ~) 라고 해보세요.

해결이 안된다면, blog/models.py 파일을 올려 주세요.

감사합니다.

0

DongMin Sim

감사합니다! 해결했습니다! 

0

김석훈

안녕하세요. 독자님.

에러 내용에 보면,

< app 'api2' doesn't provide model 'category' >

오타 category -> Category (대문자로) 이거나,

import 가 잘못 된 듯 합니다. (모든 Model을 api2 앱이 아니라 blog 앱에 정의하고, 거기서 import 해야 함)

확인 부탁합니다. 감사합니다.

블로그 첫 화면이 안 나옵니다.

0

344

3

INSTALLED_APPS 순서

0

264

1

vscode 실행안됨

0

702

3

django venv activate 하고 나서 vue 서버도 실행 해야 하나요?

0

384

2

더 공부할게있을까요

0

379

1

용어에 대해 문의 드립니다.

0

286

2

like 기능을 위한 overriding 문의

0

326

1

코드 최적화 과정

0

375

1

유저 1명이 1개의 게시글에 좋아요를 누를 경우

0

365

1

프로잭트를 생성하고 runserver하면 ModuleNotFoundError: No module named 발생해요

0

900

4

GET Method 에서 왜 Like 수를 증가시키는지 궁금합니다.

0

382

1

CSRF Token에 대한 질문입니다.

0

616

1

ModuleNotFoundError: No module named 'rest_framework django' 오류

0

3049

1

앱을 구성할 때 api 앱과 blog 앱을 나누어서 구성하는 이유가 궁금합니다ㅜ

1

479

2

to_representation() 오버라이딩 질문입니다.

0

508

3

공부 순서에 관해 질문드립니다.

0

372

1

CateTagAPIView에서 get 메소드

1

314

2

깃헙 페이지를 보고싶어요

0

232

1

디버거 관련 질문입니다.

0

288

3

가장 마지막강의 (Generic View -> ViewSet migration) 질문입니다.

0

229

1

PostCommentListAPIView(게시물 댓글 조회 api) 관련 질문

0

216

1

댓글 보기 및 삭제 api

0

291

1

post, comment crud 질문

0

232

4

CateTagSerializer 질문입니다!

3

346

3