从调用变量时出现问题设置.py在模型中

2024-06-17 14:20:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个应用程序,它引用数据库中的静态文件。为了灵活起见,我将返回并使模型基于基本目录相对。你知道吗

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运行没有问题。我觉得这可能很明显,但我看不见。你知道吗

谢谢!(如果你有更好的方法来处理这个问题,我洗耳恭听)


Tags: djangonameself目录basemodelsettingsmodels
2条回答

我想问题是您是从django.conf导入的,而不是您自己的设置模块,这可能意味着您的设置在需要时尚未应用,只需从您自己的模块导入即可

from my_app import settings

如果您在代码的开头放上BASE_DIR = settings.BASE_DIR之类的东西,然后改用它,这样做有效吗?
对不起,我不能亲自测试。。。你知道吗

相关问题 更多 >