오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Web Programming/Django

[Django] 프로젝트에 등록되어 있지 않은 파일에서 장고 사용하기

junha6316 2020. 12. 2. 15:04

프로젝트에 startapps 명령어로 생성되지 않은 파일에서 장고에 등록된 모델이나 함수를 사용할 때 다음과 같은 에러가 발생한다.

 

django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

 

이를 해결하기 위해선 환경을 장고에 맞춰주기 위해서 다음과 같은 코드를 from user.models import model 과 같은 파일 위쪽에 선언해준다.

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")

import django
django.setup()

from user.models import Users

os.environ 는 운영체제에 등록되어 있는 환경변수에 접근하는 명령어로서

단순히 os.environ을 작성하게 되면 자신의 컴퓨터에 있는 환경변수가 출력된다.

즉 os.environ.setdefault(A, B) 는 A라는 이름로 B를 값으로 등록하겠다는 의미이다.

만약 환경 변수값을 갖고 오고 싶다면 아래 명령어를 통해 확인하면 된다.

 

import os
os.environ.get("DJANGO_SETTINGS_MODULE")