Mise à jour : django-configurations a été publié, ce qui est probablement une meilleure option pour la plupart des gens que de le faire manuellement.
Si vous préférez faire les choses manuellement, ma réponse précédente reste valable :
J'ai plusieurs fichiers de paramètres.
-
settings_local.py
- la configuration spécifique à l'hôte, comme le nom de la base de données, les chemins de fichiers, etc.
-
settings_development.py
- configuration utilisée pour le développement, par exemple DEBUG = True
.
-
settings_production.py
- configuration utilisée pour la production, par exemple SERVER_EMAIL
.
Je lie tout ça avec un settings.py
qui importe d'abord settings_local.py
et ensuite l'un des deux autres. Il décide lequel charger en fonction de deux paramètres internes settings_local.py
- DEVELOPMENT_HOSTS
et PRODUCTION_HOSTS
. settings.py
appelle platform.node()
pour trouver le nom d'hôte de la machine sur laquelle il s'exécute, puis cherche ce nom d'hôte dans les listes, et charge le second fichier de configuration en fonction de la liste dans laquelle il trouve le nom d'hôte.
De cette façon, la seule chose dont vous devez vous soucier est de conserver le nom de l'entreprise. settings_local.py
à jour avec la configuration spécifique de l'hôte, et tout le reste est géré automatiquement.
Consultez un exemple ici .