88

Đây là một câu hỏi rất mới bắt đầu. Nhưng tôi đã bối rối. Làm cách nào để tham chiếu biến cài đặt django trong mô hình của tôi?

NameError: tên 'PRIVATE_DIR' không được xác định Cũng đã thử 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)
|
208

Hãy thử với điều này: from django.conf import settingssau đó settings.VARIABLEđể truy cập vào biến đó.

|
  • 1

    Cảm ơn nó hoạt động nếu tôi tham khảo vớisettings.VAR

    – Hoàng Chí Nam 17:34:15 23/10/2011
  • 1

    Một cái gì đó có liên quan: nếu bạn có một vài trường hợp settings_something.pydo 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 luôn sử dụng nhập khẩu được đề cập trong câu trả lời này. Phải mất vài giờ tôi mới nhận ra điều gì đang diễn ra trong dự án của mình.

    – Trịnh Bảo Nghi 13:42:10 08/06/2016
  • 1

    Điều này hoạt động, 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.txt --sinstall = .. Đọc thêm trong docs: docs.djangoproject.com/en/2.0/topics/sinstall

    – Đỗ Tâm Như 20:51:32 08/02/2018
70
from django.conf import settings

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

Trong trường hợp 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 xác định trong cài đặt.

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.