2017-01-05 3 views
3

Django에서 가져 오기를 올바르게 처리하고 받아 들일 수있는 방법이 있는지 알고 싶습니다. 나는 다음과 같은 패턴을 사용Django 가져 오기를 수행하는 올바른 방법은 무엇입니까?

은> 나는 많은 자습서 및 블로그에 사용 된 참조 무엇

# import views from Django app called xxx to urls.py in the same app 
from . import views 

>

# import views from Django app called xxx to urls.py in the same app 
from xxx import views 

마찬가지로 내가 사용> 내가 사용하고 무엇을보고

# import YYY and XXX from xxx.models to xxx.serializers.py 
from .models import YYY, XXX 

예를 들어 Django-Rest-Framework 튜토리얼은>

입니다.
# import YYY and XXX from xxx.models to xxx.serializers.py 
from xxx.models import XXX, YYY 

내 장고 앱에서 자습서에 표시된 방식으로 가져 오기를 수행하지 않습니다. 내가 뭔가 잘못하고 있는거야? 내가 장고 문서에서 내 길을 골랐어 요. 내가 Python3.5

장고 1.10를 사용하고
+0

프로젝트 트리 구조를 공유하십시오. 트리 모듈을 설치하고 프로젝트 디렉토리에서'tree' 명령을 실행하고 질문에 출력을 추가하십시오. –

답변

1

은 다음과 같습니다 장고 프로젝트가 말 :이 명령을 사용하는이 응용 프로그램을 실행하려면 지금

mysite/ 
    manage.py 
    app_1/ 
     __init__.py 
     models.py 
     views.py 
    app_2/ 
     __init__.py 
     models.py 
     views.py 
    mysite/ 
     __init__.py 
     settings.py 
     urls.py 
     wsgi.py 

app_1app_2 이름이 응용 프로그램을.

mysite> python manage.py runserver

여기

당신은 mysite 상위 폴더/디렉토리에서 명령을 실행하고 있습니다.

이제는 파이썬 app_1보기 코드를 가져 오기 app_2 모델입니다. 코드가 잘 구성되어 있으면 할 필요가 없습니다. 하지만 가져 오기를 수행하려면 전체 네임 스페이스를 수행해야합니다.

예 : 당신은 당신이

from .models import YYY

을 사용할 수도 app_1 같은 응용 프로그램 내에서 모델을 가져 싶어하지만 당신은 프로그램을 실행하고있는 경우 경우

한편 from app_2.models import XXX

프로그램에서 mysite> python manage.py runserver 명령을 사용하면 전체 네임 스페이스 경로가있는 동일한 모듈을 가져올 수 있어야합니다.

from app_1.models import YYY

참고 : 코드 좋은 방법은 항상 명시되어있다. 그러므로 당신은 이것이 더 일반적으로 처방되었음을 알 것입니다.

# import views from Django app called xxx to urls.py in the same app 
from xxx import views 

# import YYY and XXX from xxx.models to xxx.serializers.py 
from xxx.models import XXX, YYY 
관련 문제