django: getattr(settings, "BLA_BLA", False)

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sagt mal, spricht irgendwas dagegen sowas zu machen (Also mit getattr zu arbeiten):

Code: Alles auswählen

from django.conf import settings

if getattr(settings, "BSP_VARIABLE", False) == True:
    # tu was
Funktionieren tut es jedenfalls...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

a) warum soll es nicht funktionieren?
b) was spricht dagegen?
c) warum == True?
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ja, keine Ahnung... Sie settings in django sind schon ein bisschen magic... Aber stimmt, das "== True" kann ich mir eigentlich sparen ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

jens hat geschrieben:Ja, keine Ahnung... Sie settings in django sind schon ein bisschen magic... Aber stimmt, das "== True" kann ich mir eigentlich sparen ;)
Warum sind die Magic?
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Naja, das fängt schon damit an, das man die settings.py Datei nicht direkt importieren soll, sondern es über "from django.conf import settings" machen soll.

OK, es liegt wohl daran, das die die default Einstellungen haben wollen. Aber das würde doch auch anders gehen...

Komisch ist auch:
Note that django.conf.settings isn’t a module — it’s an object. So importing individual settings is not possible:

Code: Alles auswählen

from django.conf.settings import DEBUG  # This won't work.
Schon ein bischen magisch, oder nicht?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

jens hat geschrieben:Naja, das fängt schon damit an, das man die settings.py Datei nicht direkt importieren soll, sondern es über "from django.conf import settings" machen soll.
Ja. Weil man zb testing Server hat, oder produktion Server oder Entwicklungseinstellungen und man nicht settings rumkopieren will, sondern einfach nur ein anderes DJANGO_SETTINGS_MODULE aktiviert.
OK, es liegt wohl daran, das die die default Einstellungen haben wollen. Aber das würde doch auch anders gehen...
Das hat damit nix zu tun.
Komisch ist auch:
Note that django.conf.settings isn’t a module — it’s an object. So importing individual settings is not possible:

Code: Alles auswählen

from django.conf.settings import DEBUG  # This won't work.
Schon ein bischen magisch, oder nicht?
Das ist nicht magisch, sondern logisch. settings ist kein Modul, sondern ein settings Objekt. Das foo_settings.py Modul ist nicht die einzige Möglichkeit ein Settings Objekt zu erstellen. Schau dir zb mal das Testsystem an.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

mitsuhiko hat geschrieben:Ja. Weil man zb testing Server hat, oder produktion Server oder Entwicklungseinstellungen und man nicht settings rumkopieren will, sondern einfach nur ein anderes DJANGO_SETTINGS_MODULE aktiviert.
Ah, ok. Da hast du recht... Das hatte ich nicht bedacht ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten