无法覆盖生产中的 Django 设置

时间:2021-03-01 10:20:00

标签: python django

我在我的项目 website 中使用此设置布局:

settings
├── base.py
├── dev.py
└── __init__.py

在我的 manage.py 文件中,有设置路径:

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

我的 __init__.py 文件:

import os

try:
    from .base import *  # noqa
except ImportError:
    pass

if os.environ.get('DJANGO_DEVELOPMENT') != 'prod':
    from .dev import *  # noqa

try:
    from .local import *  # noqa
    print('----> Imported')
except ImportError:
    print('----> No local settings found')

基本上,如果不是环境prod,则导入dev,如果本地文件存在,则导入。在 base.py 中有共享的所有设置,在开发或本地文件中,我替换值取决于我的个人要求。在生产中,我通过 ansible 部署 local.py。我可以看到,文件在那里,我正在为 sqlite 和 ALLOWED_HOSTS 或 DEBUG 设置数据库路径。在生产日志中,我可以看到消息 ----> Imported 所以我认为这应该有效,但是:

  1. 在生产过程中,我注意到该设置被导入两次,我可以看到消息 ----> Imported 两次。
  2. 当我在 local.py 文件甚至 base.py 文件中更改数据库名称时,没有进行任何更改,而且日志中也没有错误。这是我的本地文件:
from website.settings import base  # I tried with include base first, did not help

DEBUG = False
ALLOWED_HOSTS = ['mydomain.com']

STATIC_ROOT = '/static/'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': '/data/db/db.sqlite345',
    }
}

我希望,我的数据库名称将是 db.sqlite345 但它仍然是 db.sqlite3 - 默认。

我的目标是将 db 存储在已安装的卷 /data/db 中。

  1. 当我尝试在我的网站上获取不存在的端点(例如 mydomain.com/hello)时,我收到错误消息 未找到。没错,看起来 DEBUG 已设置为 False

版本: django==3.1.7

0 个答案:

没有答案
相关问题