2011-10-23 11 views
66

यह एक बहुत ही शुरुआती सवाल है। लेकिन मैं फंस गया हूँ। मैं अपने model.py में django सेटिंग्स चर का संदर्भ कैसे दूं?मैं अपने models.py में django सेटिंग्स चर का संदर्भ कैसे दूं?

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

'django.conf आयात सेटिंग्स से' - 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 = के साथ .. दस्तावेज़ों में और पढ़ें: https://docs.djangoproject.com/en/2.0/topics/settings / – mirek

54
from django.conf import settings 

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

यह कहाँ का कहना है None, आप एक डिफ़ॉल्ट मान रखा जाएगा बैठाना चर परिभाषित नहीं है सेटिंग्स में