Impossible d'utiliser les variables d'environnement pour les paramètres de Django

En essayant de trouver un endroit pour stocker et sauvegarder des paramètres au-delà de settings.py et la base de données, j'ai utilisé un environnement.json pour les variables d'environnement. - Je importer dans ces settings.py.

Mon problème est que lorsque je tente de modifier ou de stocker de nouvelles valeurs dans mon environnement, envsettings.py ne remarque pas le changement - peut-être parce que le temps et le nombre de fois settings.py est lu par Django.

Est-il un moyen que je serais capable d'utiliser mes variables d'environnement de la façon dont je le veux, comme a tenté ci-dessous?

# settings.py
import json
with open('/home/dotcloud/environment.json') as f:
    env = json.load(f)
EMAIL_HOST = env.get('EMAIL_PORT', '500')

# views.py
import json
def site_configuration(request):
    with open('/home/dotcloud/environment.json') as f:
        env = json.load(f)
    if request.method == 'POST':
        os.environ['EMAIL_PORT'] = request.POST['email_port']
    return render(request, ...)

# python manage.py shell demo
>>> import json
>>> with open('/home/dotcloud/environment.json') as f:
...     env = json.load(f)
... 
>>> project_settings.EMAIL_PORT
'500'
>>> env['EMAIL_PORT']
Traceback (most recent call last):
  File "<console>", line 1, in <module>
KeyError: 'EMAIL_PORT'
>>> env['EMAIL_PORT'] = "123"
>>> env['EMAIL_PORT']
'123'
>>> project_settings.EMAIL_PORT
'500'
>>> project_settings.EMAIL_PORT == env['EMAIL_PORT']
False'

Et si non, comment pourrais-je stocker changeant les paramètres sont récupérés par settings.py quelque part dans mon projet Django?

source d'informationauteur Kiwi