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

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

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

Beitragvon jens » Dienstag 4. Dezember 2007, 09:07

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...

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

Beitragvon mitsuhiko » Dienstag 4. Dezember 2007, 09:08

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

Beitragvon jens » Dienstag 4. Dezember 2007, 09:09

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

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

Beitragvon mitsuhiko » Dienstag 4. Dezember 2007, 09:10

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
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 4. Dezember 2007, 09:15

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?

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

Beitragvon mitsuhiko » Dienstag 4. Dezember 2007, 09:19

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
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 4. Dezember 2007, 09:21

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 ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder