On Mon, 2006-03-13 at 17:13 +0000, Christian Lück wrote: > Daniel Nouri wrote: > > Not sure I'm using the Object field right, but this seems odd: > > > > >>> from zope.schema import Field, Object > > >>> from zope.schema.interfaces import IField > > >>> field = Object(IField) > > >>> field.validate(Field()) > > Traceback (most recent call last): > > File "<stdin>", line 1, in ? > > File > > > > "/home/daniel/lib/Zope-3.2.0/lib/python/zope/schema/_bootstrapfields.py", > > line 138, in validate > > self._validate(value) > > File > > "/home/daniel/lib/Zope-3.2.0/lib/python/zope/schema/_field.py", > > line 418, in _validate > > raise WrongContainedType(errors) > > zope.schema.interfaces.WrongContainedType: [, ] > > > > The error message is not really helpful. Turns out that the given error > > is a RequiredMissing error and it's missing the value of 'default' on > > the field. > > > > Am I doing something wrong or is the Object field not behaving as it > > should? > > > > It does as it should. Use it this way: > > from zope.interface import Interface > from zope.schema import Object > > class IFoo(Interface): > #blabla > > class IFooture(Interface): > bar = Object(IFoo, title=u"blabla") > # you can also give the IFoo-Interface as a keyword: > barbar = Object(schema=IFoo, title=u"blabla from barbar") > > There is a nice and helpfull example in ++apidoc++: Book --> Widgets and > Forms --> Advanced Widgets > Please also refer to srichter's book, chapter 8.3 (p. 54).
I don't have Stephan's book around right now. But I'm using the Object field just as you suggest. But that doesn't work. The error is the same as described above. I just wanted to reproduce it in the interactive interpreter. Thanks Daniel _______________________________________________ Zope3-users mailing list [email protected] http://mail.zope.org/mailman/listinfo/zope3-users
