我可以将自定义设置放在 Django 的 settings.py 中吗

问题描述

我想在我的 Django 应用程序中定义几个自定义设置。到目前为止,我已将它们放在每个应用程序的 constants.py 文件中。

myapp/constants.py

HOURS_PER_EVENT = 4
MAX_MEMBERS_PER_EVENTS = 150
MAX_EVENTS_PER_YEAR = 10
...

我突然想到我可以将这些放在 settings.py 中,经过快速测试后一切似乎都正常。这是允许的还是 settings.py 保留用于定义 here 的核心 django 设置?如果不允许,有没有更好的地方放这些。

解决方法

是的,可以扩展您的应用程序设置,而且操作起来非常简单。您需要做的只是从当前项目 settings.py 到模块 settings 的简单操作。

您的文件结构可能如下所示:

mysite/
 |-- mysite/
 |    |-- __init__.py
 |    |-- settings.py
 |    |-- urls.py
 |    +-- wsgi.py
 +-- manage.py

你需要做的是把它改成这样:

mysite/
 |-- mysite/
 |    |-- __init__.py
 |    |-- settings/
 |    |    |-- __init__.py
 |    |    |-- base.py  <-- (this is your old settings.py)
 |    |    +-- constants.py
 |    |-- urls.py
 |    +-- wsgi.py
 +-- manage.py

这是this tutorial中描述的模式。