如何将列表/元组传递到 Django 的环境变量中

Rut*_*net 4 django python-3.x

有人知道如何将列表传递给环境变量吗?目前我正在尝试将代码列表放入我的 settings.py 文件中。

我的 .env 文件中有这个:

ALLOWED_CODES='AB01', 'AB02'
Run Code Online (Sandbox Code Playgroud)

在我的 settings.py 这就是我所拥有的:

ALLOWED_CODES = [os.environ.get('ALLOWED_POSTCODES')]
Run Code Online (Sandbox Code Playgroud)

如果运行 docker-compose config 它被解析为:

ALLOWED_CODES: '''AB01'', ''AB02'''
Run Code Online (Sandbox Code Playgroud)

我想要的是它返回 .env 文件中定义的确切列表。

Ala*_*air 9

os.environ.get('ALLOWED_POSTCODES')将始终返回一个字符串。您可以将其转换为列表。

ALLOWED_CODES='AB01', 'AB02'
Run Code Online (Sandbox Code Playgroud)

如果您可以将.env文件更改为

ALLOWED_CODES=AB01,AB02
Run Code Online (Sandbox Code Playgroud)

那么你可以做

ALLOWED_CODES = os.environ.get('ALLOWED_POSTCODES').split(",")
Run Code Online (Sandbox Code Playgroud)

您可能可以将当前值解析为所需的列表,但字符串操作会更难。

您可能想要使用可以.env为您处理文件的包,例如django-environ.