我正在製作一個引用數據庫中的靜態文件的應用程序。爲了靈活性,我回到基於BASE_DIR的相關模型。從模型中的settings.py調用變量的問題
from django.db import models
from django.conf import settings
class agency(models.Model):
agency_name = models.CharField(max_length=200)
agency_flag = models.FilePathField(
path=settings.BASE_DIR+"program/static/flags")
agency_bio = models.CharField(max_length=10000)
agency_color = models.CharField(max_length=20, default='red')
time = models.IntegerField(default=0)
def __str__(self):
return self.agency_name
class Meta:
verbose_name_plural = "Agencies"
只要我只調用一次它的工作正常的變量。但也有2種模式,需要調用settings.BASE_DIR
class programs(models.Model):
code = models.CharField(max_length=3)
name = models.CharField(max_length=50)
description = models.CharField(max_length=500)
image = models.FilePathField(
path=settings.BASE_DIR+"program/static/programs")
def __str__(self):
return self.code
class Meta:
verbose_name_plural = "Programs"
class shiptypes(models.Model):
name = models.CharField(max_length=200)
desc = models.CharField(max_length=500)
color = models.CharField(max_length=6, default='000000')
image = models.FilePathField(
path=settings.BASE_DIR+"program/static/shiptypes")
def __str__(self):
return self.name
class Meta:
verbose_name_plural = "Ship Types"
儘管使用settings.BASE_DIR完全相同,Django會引發錯誤「類型的對象‘的設置’有沒有屬性‘BASE_DIR’上的所有,但第一參考。如果我去擺脫settings.BASE_DIR程序和shiptypes makemigrations運行沒有任何問題,我覺得它可能是非常明顯的東西,但我看不到它
謝謝!(也如果你有一個更好的方式來處理這個我都耳朵)
你是如何導入設置的? – Sayse
下面的答案瞬間起作用。我現在需要在視圖中的基本目錄以及它給了我同樣的錯誤..我使用的代碼是'從django.conf導入設置' 所以我不知道我在做什麼錯... – arlyon