Hi,
On 11/29/2009 12:02 PM, Markus Kemmerling wrote:
I stumbled upon a problem with Object schema field validation. The problem
occurs, e.g., if the the Object field's schema itself contains a Choice field
with a dynamically computed vocabulary. For the latter to validate correctly
the field must be bound to the instance. But the Object field validation code
in zope.schema._fields._validate_fields validates the attributes of the
Object field instance without binding them first:
def _validate_fields(schema, value, errors=None):
...
try:
attribute = schema[name]
if IField.providedBy(attribute):
# validate attributes that are fields
attribute.validate(getattr(value, name))
except ValidationError, error:
...
Replacing the line
attribute.validate(getattr(value, name))
with
field = attribute.bind(value)
field.validate(getattr(value, name))
fixes the problem.
Looks like a bug to me.
Yeah, sounds like it. Would you mind reporting this to the bug tracker
and put the bug number into this thread so people can later find it in
the archive?
Thanks and kind regards,
Christian
--
Christian Theune · c...@gocept.com
gocept gmbh co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 0 · fax +49 345 1229889 1
Zope and Plone consulting and development
___
Zope-Dev maillist - Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists -
https://mail.zope.org/mailman/listinfo/zope-announce
https://mail.zope.org/mailman/listinfo/zope )