2013-04-28 12 views
6

Attualmente ho un'applicazione di Django di produzione in esecuzione su Heroku. Sfortunatamente, non sono stato in grado di disattivare l'impostazione DEBUG su Heroku. Disattivarlo localmente funziona bene, ma quando viene inviato a Heroku (dopo heroku config:set DEBUG=False), non si applica.Heroku Django DEBUG Impostazione non applicata

Le pagine di errore sono ancora quelle predefinite DEBUG invece dei modelli 404, 403 e 500 nella nostra radice modello.

Ho anche provato a utilizzare l'impostazione DJANGO_DEBUG in caso di conflitti di ambiente con DEBUG e il risultato in un booleano nel file delle impostazioni. heroku config indica che le impostazioni nell'ambiente sono corrette. Questo è su Django 1.3, Heroku Cedar.

Eventuali suggerimenti o soluzioni?

risposta

10

Il file django settings.py ha un aspetto anche nell'ambiente?

Per impostazione predefinita, non si occupa di tutto ciò che è stato impostato nell'ambiente (tramite "config: set"). Se stai "trasmettendo" l'ambiente a un booleano, assicurati di eseguirlo correttamente. bool ('False') è ancora True.

È più semplice rilevare se esiste la variabile di ambiente in modo da non doversi preoccupare della trasmissione dei tipi o dei formati specifici della configurazione.

DEBUG = os.environ.get('DEBUG', False)

Per disattivare il debug, rimuovere la variabile dall'ambiente invece di cercare di tipo colato ... sembra solo molto più affidabile e infallibile. config:unset DEBUG

+0

Sì, praticamente qualsiasi cosa diversa tra l'allestimento e la produzione si basa sull'ambiente. Proverò a rimuoverlo completamente. – Murph

+0

Fantastico, è sufficiente rimuoverlo invece di impostarlo su False perfettamente funzionante! Grazie! – Murph

+1

Fantastico! Quindi immagino che il tipo di casting non funzionasse ("False") forse. –