在django-configuration中检索值的更惯用的方法

时间:2015-03-17 16:24:10

标签: django python-2.7

我在django项目中使用django-configurations(版本0.8)。我在配置设置中有这样的东西。

class MyConfiguration(Configuration):
    AWS_STATIC_STORAGE_BUCKET_NAME = values.SecretValue()
    AWS_MEDIA_STORAGE_BUCKET_NAME = values.SecretValue()
    MEDIA_URL = 'https://s3.amazonaws.com/%s/' % AWS_MEDIA_STORAGE_BUCKET_NAME
    STATIC_URL = 'https://s3.amazonaws.com/%s/' % AWS_STATIC_STORAGE_BUCKET_NAME

稍后当我尝试访问MEDIA_URL和STATIC_URL的值时,我使用以下代码检索它们的值:

import config
print config.MEDIA_URL
print config.STATIC_URL

我看到它打印

<Value default: None>/

我认为这是因为当在MyConfiguration中对MEDIA_URL和STATIC_URL进行分配时,AWS_STATIC_STORAGE_BUCKET_NAME和AWS_MEDIA_STORAGE_BUCKET_NAME(来自values.SecretValue())的值尚不可用。我通过将前两行更改为以下来解决此问题:

import os
AWS_STATIC_STORAGE_BUCKET_NAME = os.environ['DJANGO_AWS_STATIC_STORAGE_BUCKET_NAME'] 
AWS_MEDIA_STORAGE_BUCKET_NAME = os.environ['DJANGO_AWS_MEDIA_STORAGE_BUCKET_NAME']

但是,我想知道是否有更好的方法来设置MEDIA_URL和STATIC_URL的值,即更多惯用的django-configuration。

此致

SN

1 个答案:

答案 0 :(得分:0)

如何检索它:

from django.conf import settings
print settings.MEDIA_URL
print settings.STATIC_URL