2012-04-10 14 views
7

Sto lavorando su un progetto Django che utilizza diverse variabili di configurazione decine specificate in diversi file "Impostazioni" situato nella directory principale del progetto:Organizzazione impostazioni in Django

--> myproject 
------> app folders 
------> ... 
--- settings.py 
--- settings_global.py 
--- settings_production.py 
--- settings_development.py 

variabili di diversi settings_ * file vengono quindi possono essere importate in file settings.py in base a determinati parametri di runtime (nome host ecc.). Tutto funziona piuttosto bene, ma a volte è ancora difficile individuare certa variabile, quindi mi piacerebbe ri-organizzare le variabili impostazioni e diviso in diverse categorie:

  • variabili specifiche del progetto
  • variabili specifiche Django
  • variabili specifiche installato-app (quali le impostazioni per django_compressor, ecc)
  • variabili specifiche dell'ambiente (produzione/sviluppo)

Inoltre mi piacerebbe spostare tutti settin gs file, ma il file settings.py alle impostazioni sottodirectory:

--> myproject 
------> app folders 
------> ... 
------> settings 
---------- __init__.py 
---------- common.py 
---------- production.py 
---------- development.py 
---------- apps.py 
---------- ... 
--- settings.py 

Ho creato impostazioni sottodirectory (così come file vuoto __init__.py) e copiato/rinominate i file delle impostazioni. Poi ho cercato di importare tali variabili nel mio file setting.py come segue:

from settings.common import * 
from settings.apps import * 

Tuttavia, sto ottenendo il seguente errore (anche se ROOT_URLCONF esiste in impostazioni/file di common.py):

AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF' 

Cosa sto sbagliando?

+0

Dove si ottiene questo errore? –

+0

Ottengo questo nel log degli errori di apache (dopo aver riavviato il processo e visitando la pagina del progetto) – MikeAr

+0

correlati: http://stackoverflow.com/questions/2035733/how-to-modularize-django-settings-py http: // stackoverflow .com/questions/5583077/django-settings-py-separate-local-and-global-configuration http://stackoverflow.com/questions/1626326/how-to-manage-local-vs-production-settings-in- django – danihp

risposta

7

Penso che ci sia una collisione nome tra il modulo settings.py e il pacchetto impostazioni, provare a rinominare il pacchetto a qualcos'altro

+0

Questo era il problema, grazie. – MikeAr

+0

Grazie mille !! –

Problemi correlati