Seite 1 von 1

DJANGO_SETTINGS_MODULE innerhalb von Python setzen

Verfasst: Freitag 20. Juni 2014, 08:27
von Nras
Hallo,

zur Zeit arbeite ich auf verschiedenen Datenbanken und habe daher verschiedene settings_*.py, um die Datenbanken entsprechend anzusprechen. Alle verfügbaren Datenbanken in einer settings_*.py ist leider keine Option, da feste Namen vergeben sind.
Ich löse das Problem so, in dem ich einfach vor dem Ausführen der Pythonfunktion noch die richtige Settingsdatei setze.

Code: Alles auswählen

export DJANGO_SETTINGS_MODULE=pfad-zu.tollensettings
python mykram.py
Das ist mit enstprechendem alias in der .bashrc auch halbwegs in Ordnung, noch besser fände ich es aber, wenn ich das DJANGO_SETTINGS_MODULE innerhalb meiner Python-Funktion setzen würde. Leider konnte ich dazu nichts im netz finden, außer auf https://docs.djangoproject.com/en/dev/topics/settings/ den Part

Code: Alles auswählen

import os

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
Das bewirkt aber nichts, ich habe dann trotzdem noch das settings Modul geladen, was in der Shell vorgegeben ist.

Frage: kann ich das DJANGO_SETTINGS_MODULE innerhalb von Pythonprogrammen setzen? Falls ja: wie?

Viele Grüße,
Nras

Re: DJANGO_SETTINGS_MODULE innerhalb von Python setzen

Verfasst: Freitag 20. Juni 2014, 10:22
von Sirius3
@Nras: An welcher Stelle versuchst Du denn `DJANGO_SETTINGS_MODULE` zu setzen? Es muß vor dem Importieren von irgendwelchen Django-Modulen passieren.

Re: DJANGO_SETTINGS_MODULE innerhalb von Python setzen

Verfasst: Freitag 20. Juni 2014, 11:53
von Nras
Hallo Sirius,

das stimmt. Wenn in meiner Shell als DJANGO_SETTINGS_MODULE beispielsweise 'pfad.settings1' gesetzt ist und ich sowas ausführe wie hier, dann wird settings2 benutzt.

Code: Alles auswählen

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'pfad.settings2'
Wenn ich dann aber Sachen von der DB herunterlade (also django Module importiere, auch nur in Unterfunktionen), dann kann ich danach die Settings nicht mehr mit ''os.environ'' ändern. Gibt es da auch einen Weg?

Viele Grüße,
Nras.

Edit: Typos

Re: DJANGO_SETTINGS_MODULE innerhalb von Python setzen

Verfasst: Freitag 20. Juni 2014, 13:08
von Sirius3
Nein, man kann Settings nur am Anfang setzen.

Re: DJANGO_SETTINGS_MODULE innerhalb von Python setzen

Verfasst: Freitag 20. Juni 2014, 13:16
von Nras
Alles klar,

danke.