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

sonagi님의 프로필 이미지
sonagi

작성한 질문수

파이썬 사용자를 위한 웹개발 입문 A to Z Django + Bootstrap

다른 app에서 blog의 post모델을 가져오려면?

작성

·

993

0

main 이라는 앱을 새로 만들어서 거기서 최근에 올라온 post 몇개를 미리보기 할수있게 만드는 기능을 추가하려합니다.

main/views.py에서 blog/models.py에 있는 Post를 가져와서 쓰면 될거라고 생각하는데.. 좀처럼 적절한 코드가 떠오르지 않네요. import는 어떻게 해야할지도 모르겠어요..

답변 7

1

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

강좌를 끝냈으면 blog라는 app이 당연히 있을텐데, 새로 프로젝트를 만들어서 시작하셨나요? 

0

sonagi님의 프로필 이미지
sonagi
질문자

앗.. 제가 실수를 하고있었네요 해결됐습니다 감사합니다

0

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

프로젝트 다운받아서 아래처럼 써봤는데 아무런 문제 없이 잘 됩니다. 

from django.shortcuts import render
from blog.models import Post

def index(request):
posts = Post.objects.all()
return render(
request,
'main/index.html',
{
'posts': posts
}
)

0

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

settings.py의 installed_apps에 blog가 추가되어 있는 상태인가요?

가상환경은 실행되어 있는 상태인가요/ 

0

sonagi님의 프로필 이미지
sonagi
질문자

아니요 blog 가 있는 상태에서 startapp을 이용해서 main이라는 앱을 새로 만들었습니다

장고 프로젝트 이름이 A라고 하면 지금 상황이

A

    blog

        models.py

        views.py

        등등..

    main

        models.py

        views.py

        등등..

    A

         asgi.py

        settings.py

        urls.py

        wsgi.py

이런식으로 blog랑 main이 같은 폴더 안에 잇습니다

0

sonagi님의 프로필 이미지
sonagi
질문자

아래와 같은 오류가 뜹니다.

---

Traceback (most recent call last):

  File "views.py", line 2, in <module>

    from blog.models import Post

ModuleNotFoundError: No module named 'blog'

------

경로지정이 잘못됐나싶어서

from ..blog.models import Post로 바꿔서 해봤는데

-----

Traceback (most recent call last):

  File "views.py", line 2, in <module>

    from ..blog.models import Post

ImportError: attempted relative import with no known parent package

----

이번엔 importError가 나와버리네요..ㅜㅜ

참고로 main/views.py 는 아래와 같습니다..

---

from django.shortcuts import render

from ..blog.models import Post

def index(request):

    return render(

        request, 

        'main/index.html',

    )

----

일단 import로 불러만오고싶은데.. 잘안되네요. 세팅의 문제일까요? main 폴더가 blog의 하위폴더로 들어가야하는건지..

0

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

간단합니다. main/views.py 맨 위에

from blog.models import Post

이렇게 해보세요. 

sonagi님의 프로필 이미지
sonagi

작성한 질문수

질문하기