본문 바로가기
django

Add a module and use a model

by hyundy 2021. 10. 18.

django에 모듈을 생성 해서 사용할 일이 생겨서 프로젝트 app 에 파일 생성 후 models class 를 호출 했더니 에러가 발생 한다. 

대충 모듈이 정의 되지 않았다는 의미 이다. 

 

 

manage.py 내용을 보면 

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'workAutomation.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'workAutomation.settings')

부분이 보인다. 이는 프로젝트가 실행 될때 settings.py 설정 값을 읽어 온다는 의미다

 

새 모듈(django는 .py 를 모듈로 인식 한다.)을 추가 하면 django는 어떤 파일인지 인식 하지 못한다. 

따라서 새모듈이 어떤 환경설정을 참고 할지 지정해 줘야 한다. 

import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)) + '/app')))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'workAutomation.settings')
import django
django.setup()

#use app models class add
from excel.models import Exceltestdata

처음엔 sys 경로를 추가 안하고 실행 하니 프로젝트를 못찾길래 경로를 추가 해줬다. 

(만약 manage.py 와 같은 경로에서 사용 한다면 sys 경로를 빼도 settings.py를 찾는다. )

 

 

ipython 에서 QuerySet 테스트 할때 해주는것과 같다고 생각 하면 편하다.

 

 

'django' 카테고리의 다른 글

Django Form, Serializer  (0) 2021.11.23
Excel data DB insert & the other way  (0) 2021.10.19
django mysql connection error  (0) 2021.10.14
django file upload & download  (3) 2021.10.12
django 기본 구조  (0) 2021.10.11