我在哪里可以找到 Django 中我的应用程序的默认设置?

Where do I find the default settings for my app in Django?

问题: django.core.exceptions.ImproperlyConfigured: Requested settings, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

来自 Django Docs 的示例解决方案:

# Put this before accessing settings
from django.conf import settings

if not settings.configured:
      settings.configure(default_settings=myapp_defaults, DEBUG=True)

好的,但是我在哪里可以找到我的应用程序的默认设置?

我的文件结构是:

当您 运行 Django 通过 python manage.py runserver 时,您的主要项目代码(收费)将启动并加载 settings.py。在那里,您应该全局配置它。可以使用环境变量更改此默认设置(如果它位于其他地方,或者您想尝试另一个 settings.py 文件)。

对于您的 app/modules:创建一个 settings.py 并在那里定义您的默认值,然后像您一样加载 apps.py 设置文件。无论如何,默认值将被您的主要 settings.py

覆盖

https://docs.djangoproject.com/fr/4.0/topics/settings/#custom-default-settings

从屏幕截图看来,您正在使用 PyCharm。

右键单击屏幕截图中的“第二个”charges,然后单击选项“标记为源根目录”

然后你就可以做@raphael 在评论中提到的事情了

您的设置位于 Charges/charges/charges/settings.py

您的解释器看不到它,因为 root 在 Charges 中。不过,它也应该在 Charges/charges 上才能从中导入设置

这个问题只是因为没有告诉 Django 它应该使用哪个设置文件 use.as 我看到关于如何处理这个错误几乎没有歧义列出了你可以采取的不同解决方案。

有 3 种不同的方法来处理这个问题。

1-在操作系统中定义一个环境变量(link).

2- 如果您使用的是虚拟环境;在 activate.bat

中设置一个新的环境变量
 set "DJANGO_SETTINGS_MODULE=charges.settings"

3-(按照您的方式!)在每个 python 文件中;编写定义该环境变量的命令。

 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'charges.settings')

但是如果使用这种方法,那么将命令放在哪里真的很重要(在第二种情况下,当然是第一种情况下,我们根本不在乎!)。 所以你应该注意在该命令之前不要使用 django。