166

这是一个非常初学者的问题。但我很难过。如何在我的 model.py 中引用 Django 设置变量?

NameError: name 'PRIVATE_DIR' is not defined

还尝试了很多其他的东西,包括settings.PRIVATE_DIR

设置.py:

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

模型.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)

这样做的正确方法是什么?

4

2 回答 2

368

试试这个:from django.conf import settings然后 settings.VARIABLE访问该变量。

VARIABLE 应为大写字母。否则它将无法正常工作。

于 2011-10-23T17:31:31.183 回答
112
from django.conf import settings

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

在它说的地方None,您将放置一个默认值,以防变量未在设置中定义。

于 2013-01-31T02:07:01.313 回答