2011-09-29 12 views
10

Desidero modificare la variabile di ambiente DJANGO_SETTINGS_MODULE in base a ciò che dico per workon. Mi è sembrato che volessi impostarlo su .virtualenvs/postmkvirtualenv ma il mio processo non ha avuto alcun effetto.Impostazione di DJANGO_SETTINGS_MODULE in virtualenv?

[email protected]:~$ cat ~/.virtualenvs/postmkvirtualenv 
#!/bin/bash 
# This hook is run after a new virtualenv is activated. 
export DJANGO_SETTINGS_MODULE=newproject.settings 
[email protected]:~$ echo $DJANGO_SETTINGS_MODULE 
az.settings 
[email protected]:~$ workon newproject 
(newproject)[email protected]:~$ echo $DJANGO_SETTINGS_MODULE 
az.settings 

Qualcuno potrebbe mettermi dritto; dove dovrei mettere quell'esportazione?

Inoltre, verrà ripristinato quando si disattiva? E se no, c'è un modo naturale per ripristinarlo?

+0

È possibile eseguire questa operazione: http://stackoverflow.com/questions/8826534/how-can-i-correctly-set-django-settings-module-for-my-django-project-i-am-using/ 22452281 # 22452281 – zzart

risposta

13

Tu eri sulla strada giusta, ma si desidera utilizzare il gancio postactivate invece di postmkvirtualenv.

Non si ripristinerà automaticamente alla disattivazione. Per fortuna c'è il gancio postdeactivate che puoi usare per ripristinare manualmente tutte le variabili ambientali che hai modificato all'attivazione.

+0

Grazie (ad entrambi i rispondenti). La chiave era "attiva" e non l'avevo capita prima. –

+0

Il gancio postattivato non è comune per tutti gli ambienti? Penso che non ci sia molto da fare per impostare 'DJANGO_SETTINGS_MODULE'. –

+4

Esiste una versione globale e locale dell'hook postattivato. Per un'impostazione solo locale come questa, si vorrebbe aggiungere l'esportazione a '$ VIRTUAL_ENV/bin/postactivate' invece del globale' $ VIRTUALENVWRAPPER_HOOK_DIR/postactivate'. – mmcnickle

19

Un modo ho fatto prima è che aggiungendo una dichiarazione di esportazione al fine di ./bin/activate

export DJANGO_SETTINGS_MODULE="myproject.settings"