python manage.py collectstatic正在加载错误的(本地)设置

问题描述 投票:0回答:1

我正在使用cookiecutter-django .env设计根据环境加载不同的设置。在本地运行应该使用“local.py”设置并在aws elatic beanstalk中使用,它应该加载“dev.py”。两者都从“common.py”导入。

使用开发设置在AES中运行服务器有效,但是collectstatic失败,因为它尝试导入本地设置而不是开发设置。

EC2实例如何运行collectstatic并加载(适当的)dev.py设置?

django amazon-ec2 elastic-beanstalk cookiecutter-django collectstatic
1个回答
2
投票

好的,找到了。 manage.py文件看起来像这样

if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.local')

强制所有命令使用本地设置运行,而不是从.env文件加载。

我把它改成了

import environ

ROOT_DIR = environ.Path(__file__) - 1

env = environ.Env()
env.read_env(ROOT_DIR.file('config/settings/.env'))

if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', env('DJANGO_SETTINGS_MODULE', default='config.settings.local'))

这允许manage.py命令使用我实际指定的任何设置运行。

© www.soinside.com 2019 - 2024. All rights reserved.