On Wednesday 20 June 2007 11:42, aspineux wrote:
> It doens't work, and it cannot works !
>
> I tried this
>
> class FormForwarding(widgets.TableForm):
> fields = [
> MultipleHiddenFields('context'),
> widgets.CheckBox('active', label="Activate forwarding",
> validator=validators.StringBool(if_empty=False)),
> widgets.TextField('forward_addr', label="Address to forward
> to", attrs=dict(size=40, maxlength=255), validator=EmailValidator()),
> widgets.CheckBox('keep', label="Keep a copy on server",
> validator=validators.StringBool(if_empty=False, if_invalid=False )),
> ]
> submit_text = "Update forwarding"
>
> And added some debuging into StringBool
>
> def _to_python(self, value, state):
> print "================================================="
> if isinstance(value, (str, unicode)):
> value = value.strip().lower()
> if value in self.true_values:
> return True
> if not value or value in self.false_values:
> return False
> raise Invalid(self.message("string", state,
> true=self.true_values[0],
> false=self.false_values[0]),
> value, state)
> return bool(value)
>
> def _from_python(self, value, state):
> print "================================================="
> if value:
> return self.true_values[0]
> else:
> return self.false_values[0]
>
> When both are checked, I can see the 4 '====' line
> But when one is missing, non of them.
>
> This is because the call (that generate the error) is done before the
> call of the validator !
> I thins this is because one decorator is taking the signature of the
> function.
> And then raise an exception because of missing argument.
>
> Their is no solution with TG 1.x today for missing value !
>
> It should be in red flashing in the wiki somewhere !
I doubt there is a different solution with TG x.x - because the simple
solution to this is to use keyword arguments to give a default value,
especially to possibly empty values.
And I don't think that there will be a more concise notation of this than the
built-in one.
Diez
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---