[英]Problems with calling variables from settings.py in models
我正在制作一个引用数据库中静态文件的应用程序。 为了灵活性起见,我回过头来根据BASE_DIR使模型相对。
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个需要调用设置的模型.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抛出了错误“类型对象'settings'除了第一个引用之外,所有属性都不具有'BASE_DIR'。我觉得这可能确实很明显,但我看不到。
谢谢! (同样,如果您有更好的方法来解决这个问题,我也很高兴)
如果在代码开头放置BASE_DIR = settings.BASE_DIR
类的东西,然后改用它,是否可行?
抱歉,我自己无法真正进行测试...
我想问题是您是从django.conf
导入的,而不是您自己的设置模块的,这可能意味着您的设置没有在需要时应用,只需从您自己的模块中导入
from my_app import settings
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.