मैं अपने मॉडल थिंकपैड में एक Django सेटिंग चर का संदर्भ कैसे दूं?


124

यह बहुत शुरुआती सवाल है। लेकिन मैं स्टम्प्ड हूं। मैं अपने मॉडल थिंकपैड में एक Django सेटिंग चर का संदर्भ कैसे दे सकता हूं?

NameError: name 'PRIVATE_DIR' is not defined

सहित कई अन्य सामान की कोशिश की settings.PRIVATE_DIR

settings.py:

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

models.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)

ऐसा करने का सही तरीका क्या है?


7
from django.conf import settings- docs.djangoproject.com/en/dev/topics/settings/…
wkl

जवाबों:


275

इसके साथ प्रयास करें: from django.conf import settingsफिर settings.VARIABLEउस चर को एक्सेस करने के लिए।


16
कुछ प्रासंगिक: यदि आपके पास settings_something.pyकई वातावरणों में तैनात परियोजना के कारण कई उदाहरण हैं, तो आयात करने का प्रयास न करें app.settings। अन्य फ़ाइलों में ओवरराइट किए गए चर प्रभावी नहीं होंगे। हमेशा इस उत्तर में उल्लिखित आयात का उपयोग करें। मेरे प्रोजेक्ट में क्या चल रहा है, यह महसूस करने में मुझे कुछ घंटे लगे।
ईव।

1
यह काम करता है, अगर यह ठीक से कॉन्फ़िगर किया गया है: पर्यावरण चर के साथ DJANGO_SETTINGS_MODULE या प्रबंधन के साथ कमांड लाइन पैरामीटर --settings = .. डॉक्स में और पढ़ें: docs.djangoproject.com/en/2.0-topics/settings
mirek

VAR को बाद की राजधानी होना चाहिए अन्यथा यह काम नहीं करेगा
सौरभ चंद्र पटेल

91
from django.conf import settings

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

जहां यह कहता है None, आप डिफ़ॉल्ट मान को लगा देंगे यदि चर सेटिंग्स में परिभाषित नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.