On Thursday 25 June 2009 11:35:01 Werner wrote: > Hello to all. > > I am new to this group and therefore i want to introduce myself. > > I am a Developer working with Turbogears for over 2 years now. > The time before I directly used CherryPy and my "home made" > connections to SQL-Databases. But using Turbogears as Framework > avoids a lot of problems and the time can better be used to > do better code. > My famous programming language is Python of course and now > i am running into little problems using validators. > (actually solved with workarounds like type-conversion, ...) > I only want to know if it is really not possible to it > the way I would like it do do ;-) > > > I am having a method in one of my model that returns a list > containing tuples > e.g. > mylist = [(0, 'user0'), (1, 'user1'), ... ] > > I use this list to feed it to a > widgets.SingleSelectField(name='user', > label='Users', > options=mylist > default=0) > > As you can see I am passing the User ID as int()-object to the widget. > > Rendering/displaying the list works like a charme. > > The validation process of the form (the user part) should be done with > SchemaValidation > e.g. > > Question #1: > (does not work because the validator wants int(), the form sends e.g. > u'0' > user = validators.OneOf( map(lambda user: user[0], myModel.getIDTuples > ()) ) > (myModel.getIDTuples results int the above example of "mylist") > > It would be possible to use str(user[0]) in lambda-expression, but I > want to avoid > type conversion if NOT REALLY needed. > > I also tried to chain validators with ForEach(Int(), OneOf( map(lambda > user: user[0], myModel.getIDTuples()) )) > This did not work because the validator resulted in [0] (a list- > object) > > Is is really not possible to validate if the value is a valid int() > and then if it is in a given list?
I don't have the slightes clue what you are trying here. I can only say that the cost for int(whatever) are so neglible that if that's all you want to avoid, but otherwise things are working - then you shouldn't care. > > #Question #2 > SchemaValidation: > > startdate, enddate are created with a widgets.CalendarDatePicker() > > startdate = validators.DateTimeConverter(format='%d.%m.%Y') > enddate = validators.DateTimeConverter(format='%d.%m.%Y') > > The validation in the given form works. > But how is possible to validate if the fields are of the correct form > (like above) > AND if startdate < enddate? Look for "chained_validators". http://docs.turbogears.org/1.0/FormValidationWithSchemas --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/turbogears?hl=en -~----------~----~----~----~------~----~------~--~---

