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 )

Reply via email to