2011-10-23 14 views
66

Đây là câu hỏi rất mới bắt đầu. Nhưng tôi đang bối rối. Làm cách nào để tôi tham chiếu biến cài đặt django trong model.py?Tôi làm cách nào để tham chiếu biến cài đặt django trong models.py?

NameError: Tên 'PRIVATE_DIR' không được định nghĩa Cũng đã cố gắng rất nhiều thứ khác bao gồm settings.PRIVATE_DIR

cách chính xác để làm điều này là gì?

--------- 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

'từ cài đặt nhập django.conf' - https://docs.djangoproject.com/en/dev/topics/settings/#using-settings-in-python-code – birryree

Trả lời

143

Hãy thử với điều này: from django.conf import settings

+16

Cảm ơn nó hoạt động nếu tôi tham chiếu với' cài đặt .VAR' – codingJoe

+6

Điều gì đó có liên quan: nếu bạn có một vài trường hợp 'settings_something.py' do một dự án được triển khai trong một số môi trường, đừng cố gắng nhập từ' app.settings'. Các biến được ghi đè trong các tệp khác sẽ không có hiệu lực. Luôn sử dụng tính năng nhập được đề cập trong câu trả lời này. Tôi mất vài giờ để nhận ra những gì đang xảy ra trong dự án của tôi. –

+0

Công trình này, nếu nó được cấu hình đúng: với biến môi trường DJANGO_SETTINGS_MODULE hoặc với tham số dòng lệnh manage.py --settings = .. Đọc thêm trong tài liệu: https://docs.djangoproject.com/en/2.0/topics/settings / – mirek

54
from django.conf import settings 

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

đâu nó nói None, bạn sẽ đặt một giá trị mặc định trong trường hợp biến không được định nghĩa trong phần cài đặt.

Các vấn đề liên quan