Python 如果在模型类之外声明,为什么settings.py中声明的变量在models.py中不可见?

Python 如果在模型类之外声明,为什么settings.py中声明的变量在models.py中不可见?,python,django,Python,Django,我在models.py中有以下代码 from django.conf import settings from django.db import models SOME_VAR_FROM_SETTINGS = settings.FAS_BR_ROOT_SITE class FasSolution(models.Model): solution_id = models.CharField(max_length=64) doc_date = models.DateTimeFi

我在models.py中有以下代码

from django.conf import settings
from django.db import models


SOME_VAR_FROM_SETTINGS = settings.FAS_BR_ROOT_SITE

class FasSolution(models.Model):

    solution_id = models.CharField(max_length=64)
    doc_date = models.DateTimeField()
    title = models.TextField()
    
    @property
    def document_1_url(self) -> str:
        return self.title + SOME_VAR_FROM_SETTINGS
出于某种原因,如果
some\u VAR\u FROM\u SETTINGS
声明为它在我的代码中的状态(即在models.py的最开始,而不是在
FasSolution
类中),它将变得不可访问,即在
document\u 1\u url
属性中等于None

但是,实际上,它的值只有某些文本字符串的值

有趣的是,如果我在
FasSolution
类中从\u设置声明中移动
SOME\u VAR\u,那么SETTINGS.py中的值将变得可访问(即,它将变成实际的文本字符串,而不是None)


为什么会这样?换句话说,为什么模型类外部的变量声明使其无法访问?

因为当时还没有加载设置。