我正在制作一个应用程序,它引用数据库中的静态文件。为了灵活起见,我将返回并使模型基于基本目录相对。你知道吗
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"
只要我只在变量正常工作时调用它。但还有两种型号需要调用settings.BASE\u目录你知道吗
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\u目录完全相同的是,django抛出错误“type object'settings'在除第一个引用之外的所有引用上都没有属性'BASE\u DIR'。如果我去处理掉settings.BASE\u目录在程序和shiptypes中,makemigration运行没有问题。我觉得这可能很明显,但我看不见。你知道吗
谢谢!(如果你有更好的方法来处理这个问题,我洗耳恭听)
我想问题是您是从
django.conf
导入的,而不是您自己的设置模块,这可能意味着您的设置在需要时尚未应用,只需从您自己的模块导入即可如果您在代码的开头放上
BASE_DIR = settings.BASE_DIR
之类的东西,然后改用它,这样做有效吗?对不起,我不能亲自测试。。。你知道吗
相关问题 更多 >
编程相关推荐