2016-07-07 3 views
4

J'ai 3 fichiers de paramètres:Django séparatrice installé des applications entre le développement vs production

  • base.py (Partagé)
  • development.py
  • production.py

base.py a:

INSTALLED_APPS = (

    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes' 
    ... 

mais j'ai quelques applications t Je veux seulement dans mon environnement de développement, par exemple, debug-toolbar.

J'ai essayé dans development.py:

INSTALLED_APPS += (
    'debug_toolbar', 
) 

Mais obtenir l'erreur: NameError: name 'INSTALLED_APPS' is not defined

Les fichiers de paramètres sont connectés comme ceci:

__init__.py

from .base import * 

try: 
    from .production import * 
except: 
    from .development import * 

Comment puis-je différencier les applications installées entre mon environnement de production/développement?

+0

montrent le retraçage complet –

+1

en double de http://stackoverflow.com/questions/1626326/how-to-manage-local-vs-production-settings-in-django – rfkortekaas

+0

Dev n'a pas "voir" base dans votre cas. Votre code doit être en init. Ou réorganisé. Mais un module importé (dev) n'hérite pas de l'espace de noms du module d'importation (init) qui est arrivé pour amener les applications installées depuis la base. Donc ... Les applications installées sont introuvables. Désolé pour les majuscules et les fautes de soulignement (sur le clavier de la tablette) mais c'est le problème principal ici. –

Répondre

2

je traite cette question moi-même, je piraté comme ceci:

base.py (le mien était settings.py)

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes' 
    ...) 


# rest of settings.py variables ... 

def _add_installed_app(app_name): 
    global INSTALLED_APPS 

    installed_apps = list(INSTALLED_APPS) 
    installed_apps.append(app_name) 
    INSTALLED_APPS = tuple(installed_apps) 

ADD_INSTALLED_APP = _add_installed_app 

development.py (le mien était settings_debug. py)

from base import * 

ADD_INSTALLED_APP('debug_toolbar') 

production.py

from base import *