was ist falsch?

Django, Flask, Bottle, WSGI, CGI…
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

was ist falsch?

Beitragvon dusselmann » Freitag 21. Oktober 2005, 08:31

Folgendes Problem:

<td tal:content="day/weekday">..</td>

geht, aber das geht nicht:

<tal:cond tal:condition="python:day.weekday==6">...

Fehler:

Error Type: AttributeError
Error Value: 'dict' object has no attribute 'weekday'

Wo ist der Haken?

Danke für Eure Hilfe!!!

Gruß, Dussel
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: was ist falsch?

Beitragvon gerold » Freitag 21. Oktober 2005, 09:09

dusselmann hat geschrieben:Fehler:
Error Type: AttributeError
Error Value: 'dict' object has no attribute 'weekday'

Hi Dussel!

Auch ohne, dass du einen Hinweis darauf gegeben hast, woher du "day" bekommst und wie es zusammengesetzt wurde. --> Bei dieser Fehlermeldung tippe ich darauf, dass "day" ein Dictionary ist und "weekday" ein Eintrag davon.

Um auf den Wert von "weekday" zu kommen, musst du wie in Python üblich mit

Code: Alles auswählen

day['weekday']
darauf zugreifen.

lg
Gerold
:-)


PS: Ich rede dich so an, wie du unterschreibst. Gefällt dir Dussel als Spitzname wirklich?
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Beitragvon dusselmann » Freitag 21. Oktober 2005, 09:41

fein, das funzt :)

grml, dass ich immer die offensichtlichen sachen fragen muss... :(

Danke & bis demnächst ;) Dussel
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Beitragvon dusselmann » Freitag 21. Oktober 2005, 13:52

Noch na andere Frage:

Code: Alles auswählen

if get=='is_validDate':
    try:
        d = DateTime(param01)
        return True
    except DateTimeError:
        return False


Damit möchte ich prüfen, ob param01 ein gültiges Datum ist (z.B. 2005/2/31).

Welche Rechte braucht mein User für folgenden Import?
from DateTime.DateTime import DateTimeError
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 21. Oktober 2005, 14:37

dusselmann hat geschrieben:Welche Rechte braucht mein User für folgenden Import?
from DateTime.DateTime import DateTimeError

Hi Dussel!

Einfache Antwort:
Der Manager hat normalerweise alle Rechte --> wenn das als *Manager* nicht funktioniert dann kannst du das Recht nicht vergeben.
Verzichte in diesem Fall auf die Except-Einschränkung nach "DateTimeError".

Komplizierte Antwort:
Das DateTime von Zope ist nicht das von Python gewohnte DateTime. Deshalb verhält es sich auch ein wenig anders und man kann nicht alles damit machen. Das hängt auch mit den Berechtigungen zusammen, die man innerhalb einer Zope-Instanz haben darf. Außerhalb, also im Dateisystem, ist das wieder ganz was anderes. Siehe Zope-Buch zum Thema Python-Script und Einschränkungen.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Beitragvon dusselmann » Freitag 21. Oktober 2005, 15:17

gerold hat geschrieben:Verzichte in diesem Fall auf die Except-Einschränkung nach "DateTimeError".


Das klappt so nicht:

Error Type: DateError
Error Value: 2005/9/31

Code:

Code: Alles auswählen

    try:
        d = DateTime(param01)
        return True
    except:
        return False


Gibt's ne andere Möglichkeit außer externen Methoden?

Gruß, Dussel
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 21. Oktober 2005, 15:47

dusselmann hat geschrieben:Das klappt so nicht:

Hi Dussel!

Bei mir schon 8)

Code: Alles auswählen

try:
    d = DateTime("2005/22/1")
    return d.strftime("%d.%m.%Y")
except:
    return "Das Datum muss in der Form YYYY/DD/MM angegeben werden."


lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Beitragvon dusselmann » Freitag 21. Oktober 2005, 16:03

und wo ist da der Unterschied außer den Rückgabewerten?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 21. Oktober 2005, 17:12

dusselmann hat geschrieben:und wo ist da der Unterschied außer den Rückgabewerten?

Hi Dussel!

Was ich damit sagen wollte:

1. Wenn du **nur** diesen Code in ein Python-Skript schreibst und dann auf den Reiter "Test" klickst, dann wirst du raus finden, dass **kein** Fehler zurück gegeben wird. Auch dann nicht, wenn du Monat und Tag verdrehst. Im Gegenteil. Der Fehler wird abgefangen und eine Meldung ausgegeben.

2. Will ich damit sagen, dass das Datum in der Form YYYY/DD/MM angegeben werden muss. --> amerikanisch

3. Wenn du meinen Code in ein eigenes Python-Skript schreibst und es dann funktioniert, dann ist irgendetwas anderes bei in deinem Code falsch.
Funktioniert mein Code auch allein in einem eigenen Python-Skript *nicht* und gibt einen Fehler zurück, dann läuft etwas anderes schief.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Beitragvon dusselmann » Freitag 21. Oktober 2005, 20:15

tadda... :!:

es lag an einem 2. script :?

bin halt manchmal wirklich n dussel :roll:

Danke dir

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder