Seite 1 von 1

was ist falsch?

Verfasst: Freitag 21. Oktober 2005, 08:31
von dusselmann
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

Re: was ist falsch?

Verfasst: Freitag 21. Oktober 2005, 09:09
von gerold
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?

Verfasst: Freitag 21. Oktober 2005, 09:41
von dusselmann
fein, das funzt :)

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

Danke & bis demnächst ;) Dussel

Verfasst: Freitag 21. Oktober 2005, 13:52
von dusselmann
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

Verfasst: Freitag 21. Oktober 2005, 14:37
von gerold
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
:-)

Verfasst: Freitag 21. Oktober 2005, 15:17
von dusselmann
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

Verfasst: Freitag 21. Oktober 2005, 15:47
von gerold
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
:-)

Verfasst: Freitag 21. Oktober 2005, 16:03
von dusselmann
und wo ist da der Unterschied außer den Rückgabewerten?

Verfasst: Freitag 21. Oktober 2005, 17:12
von gerold
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
:-)

Verfasst: Freitag 21. Oktober 2005, 20:15
von dusselmann
tadda... :!:

es lag an einem 2. script :?

bin halt manchmal wirklich n dussel :roll:

Danke dir