On 12/18/06, Gary Wilson <[EMAIL PROTECTED]> wrote: > > Honza Král wrote: > > On 12/18/06, Gary Wilson <[EMAIL PROTECTED]> wrote: > > > > > > Honza Král wrote: > > > > On 12/17/06, Adrian Holovaty <[EMAIL PROTECTED]> wrote: > > > > Feel free to take > > > > > on any of the items mentioned in this e-mail, as long as we've all > > > > > agreed on the right way to solve the problems. Rewriting the > > > > > validators to Fields would be a much-welcomed contribution, too. > > > > > Whatever you choose, let us know so that we don't duplicate work. > > > > > > > > see new_fields.py for validators transformed into Fields. It is a > > > > result of a few sed expressions (see gen_new_fields.sh ) and some > > > > manual tweaks. I haven't tested it even for syntax errors, any help > > > > would be welcome, especially tests and documentation (I suck at > > > > these)... > > > > > > > > I will continue working on those whenever I have some time (and mood ;) > > > > ) > > > > > > If inheriting Fields is going to be the new validator_list, don't we > > > need to add some super() calls in those clean() methods? > > > > > > > there are - every clean() starts with > > value = ParentField.clean( value ) > > which should represent a super call > > But it's not the same thing. Let's say I want to make a > LowerCaseAlphaNumericField that inherits LowerCaseField and > AlphaNumericField, both of which inherit CharField. If I were to call > LowerCaseField.clean() and AlphaNumericField.clean() from my > LowerCaseAlphaNumericField.clean(), then CharField.clean() and > Field.clean() would both get called twice. If I were to use a super > call in my LowerCaseAlphaNumericField.clean(), then > LowerCaseField.clean(), CharField.clean(), and Field.clean() would get > called, but not AlphaNumericField.clean().
I am sorry for the confusion - this is by no way a finished file, its just a rough sketch (if that). Please treat it as such. > > Everybody must use super so that all the correct methods get called and > get called only once. > > I'm not sure where ComboField fits into this either. Is ComboField > supposed to be used instead of inheritance for building validators? If > so, then ComboField suffers the same fate of calling clean() methods of > inherited Fields more than once (even if super calls are used) because > ComboField.clean() simply calls every passed Field's clean() method. ComboField would be used for the LowerCaseAlphaNumericField for example - it would just be a combination of AlphaNumericField and LowerCaseField, thus no extra clean() needs to be specified... and yes, that would mean that CharField.clean() would actually get called twice... > > > > > -- Honza Král E-Mail: [EMAIL PROTECTED] ICQ#: 107471613 Phone: +420 606 678585 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" 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/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---
