2010-12-28 5 views
0

Je suis en train de créer une application qui emprunte des idées de design à Django - l'utilisation d'un projet par exemple manage.py et settings.py, par exemple - et j'essaie de déchiffrer la magie.Paramètres de Django Magic

Lorsque je veux faire référence à mes paramètres Django, j'importe généralement à partir de django.settings. Évidemment, cependant, mes paramètres sont dans leur propre module spécifique au projet. Une idée de comment cela est accompli?

Répondre

2

Une variable d'environnement: DJANGO_SETTINGS_MODULE pointe vers votre module de paramètres.

Vous pouvez utiliser la fonction __import__: Voir http://docs.python.org/library/functions.html#import

Et essayer, en supposant que votre module principal de l'application est myapp:

myapp.settings = __import__(SETTINGS_MODULE_NAME, globals(), locals(), [], -1) 

Ceci est l'équivalent dynamique de la déclaration from module import *

+0

Bien sûr, mais quel mécanisme accroche la valeur de cette variable à django.settings? La source ne semble pas avoir un module ou un module de paramètres, et je suis à peu près certain que le contenu de mes settings.py est traité et ajouté à (valeurs par défaut, etc) avant d'être injecté dans le fichier django.settings (pseudo?)module. –

+0

voir mon edit pour un exemple –

+0

Awesome- Je regardais juste à travers importlib. Merci! –