Validieren

Django, Flask, Bottle, WSGI, CGI…
Antworten
Alex_winf01
User
Beiträge: 28
Registriert: Samstag 5. Februar 2005, 19:35

Hallo,

leider muss ich noch mal Eure Hilfe in Anspruch nehmen:

Folgendes Archetypes hab ich da liegen:

Code: Alles auswählen

from Products.Terminverwaltung.config import *
from Products.Archetypes.public import *
from Products.Archetypes.Marshall import PrimaryFieldMarshaller
from Products.CMFCore import CMFCorePermissions
from Products.PythonScripts.standard import html_quote
from AccessControl import  ClassSecurityInfo


schema = BaseSchema + Schema((
    LinesField('subject',
                searchable=True,
                accessor = "Subject",
                vocabulary=KATEGORIE,
                widget=SelectionWidget(),
                ),
    StringField('betreff',
                searchable=1,
                widget=StringWidget(),
                ),
    BooleanField('ganztagestermin',
                 searchable=1,
                 widget=BooleanWidget(),
                 ),
 
    StringField('ort',
                searchable=1,
                widget=StringWidget(),
                ),
    
    DateTimeField('anfang',
                  searchable=1,
                  vocabulary = 'post_validate',
                  widget=CalendarWidget(),
                  ),
    DateTimeField('ende',
                  searchable=1,
                  vocabulary = 'post_validate',
                  widget=CalendarWidget(),
                  ),
 
    #StringField('dauer',
    #             searchable=True,
    #             vocabulary='setDauer',
    #             widget=DecimalWidget(),
    #            ),
    TextField('kommentar',
              searchable=1,
              widget=TextAreaWidget()
              ),
    LinesField('teilnehmer',
                searchable=True,
                multiValued=True,
                vocabulary='_voc_teilnehmer',
                widget=MultiSelectionWidget(label="Teilnehmer"),
                ),
    ),
    )
Nun möchte ich, dass der Anwender kein Enddatum eintragen kann, welches vor dem Anfangsdatum liegt und gleichzeitig, dass er keinen Termin in der Vergangenheit eintragen kann.

Dafür verwende ich folgende Methode:

Code: Alles auswählen

def post_validate(self, request=None, errors=None):
        """Validates start and end date
        End date must be after start date
        """
        #request    = context.REQUEST
        rstartDate = REQUEST.get('anfang', None)
        rendDate   = REQUEST.get('ende', None)

        if rendDate:
            end = DateTime(rendDate)
        else:
            end = self.end()
        if rstartDate:
            start = DateTime(rstartDate)
        else:
            start = self.start()
Nun bekomme ich den Fehler, dass der Name REQUEST unbekannt ist. Muss ich hierfür ein speziells Paket importieren? Wer kann mir helfen?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Alex_winf01 hat geschrieben: Nun bekomme ich den Fehler, dass der Name REQUEST unbekannt ist.
Hi!

Code: Alles auswählen

context.REQUEST
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Alex_winf01
User
Beiträge: 28
Registriert: Samstag 5. Februar 2005, 19:35

@ Gerold

Danke für die Antwort. Diese Zeile hatte ich auskommentiert, weil ich da den Fehler bekommen habe, dass context unbekannt ist.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Alex_winf01 hat geschrieben: Diese Zeile hatte ich auskommentiert, weil ich da den Fehler bekommen habe, dass context unbekannt ist.
Hi!

Dann musst du es mit

Code: Alles auswählen

self.REQUEST
oder

Code: Alles auswählen

self.context.REQUEST
probieren.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Alex_winf01
User
Beiträge: 28
Registriert: Samstag 5. Februar 2005, 19:35

Leider bekomme ich immer noch die selbe Fehlermeldung. :oops:
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Alex_winf01 hat geschrieben:Leider bekomme ich immer noch die selbe Fehlermeldung. :oops:
Hi!
Ich kann leider nur raten, da ich keine Archetypes-Produkte programmiere. Da ansonsten nicht viele Zope-Interessierte in diesem Forum herum schwirren, muss ich dich in deinem Interesse an die Profis weiterleiten.

Melde dich mit einem Newsreader (z.B. Thunderbird) an die Newsgroup "de.comp.dzug.zope" auf dem Server "news.dzug.org" an. Da sind die Zope-Spezialisten zu hause.

http://www.zope.de/kommunikation
news://news.dzug.org/de.comp.dzug.zope

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten