2011-10-23 3 views
66

이것은 매우 초보적인 질문입니다. 그러나 나는 혼란 스럽다. 내 model.py에서 장고 설정 변수를 어떻게 참조합니까?내 models.py에서 장고 설정 변수를 참조하려면 어떻게합니까?

나가서 설명하자면 NameError : 이름 'PRIVATE_DIR은' 을 또한 settings.PRIVATE_DIR

이 작업을 수행하는 올바른 방법은 무엇입니까 포함한 다른 물건을 많이 시도 정의되어 있지?

--------- settings.py -------------

PRIVATE_DIR = '/home/me/django_projects/myproject/storage_dir' 

--------- model.py-- -------------이와

# Problem is here. 
from django.core.files.storage import FileSystemStorage 

fs = FileSystemStorage(location=PRIVATE_DIR) 

class Customer(models.Model): 
    lastName = models.CharField(max_length=20) 
    firstName = models.CharField(max_length=20) 
    image = models.ImageField(storage=fs, upload_to='photos', blank=True, null=True) 
+6

'from django.conf import settings' - https://docs.djangoproject.com/en/dev/topics/settings/#using-settings-in-python-code – birryree

답변

143

시도 : 변수가 정의되지 못했을 경우에 대비 from django.conf import settings

+16

'설정으로 참조하면 고맙습니다. .VAR' – codingJoe

+6

뭔가 관련성이 있습니다 : 여러 환경에 배포 된 프로젝트 때문에'settings_something.py' 인스턴스가 여러 개 있다면'app.settings'에서 가져 오려고하지 마십시오. 다른 파일의 덮어 쓴 변수는 적용되지 않습니다. 항상이 대답에서 언급 한 수입품을 사용하십시오. 내 프로젝트에서 무슨 일이 벌어지는 지 깨닫기까지 몇 시간이 걸렸습니다. –

+0

환경 변수 DJANGO_SETTINGS_MODULE 또는 manage.py 명령 행 매개 변수 --settings =를 사용하여 제대로 구성된 경우 작동합니다. 자세한 내용은 docs : https://docs.djangoproject.com/en/2.0/topics/settings를 참조하십시오. / – mirek

54
from django.conf import settings 

PRIVATE_DIR = getattr(settings, "PRIVATE_DIR", None) 

None을 말한다, 당신은 기본 값을 둘 것이다 설정에서.

관련 문제