Am Mittwoch, 18. April 2007 23:24 schrieb Darryl Cousins:
> On Wed, 2007-04-18 at 09:21 -0700, Martin Aspeli wrote:
> > Hermann Himmelbauer wrote:
> > > Hi,
> > > I wonder if it's possible to define attributes in a schema that
> > > reference other interfaces. For instance, I have a schema for a car and
> > > another one for
> > > a wheel and what I want to do is something like that:
> > >
> > > class IWheel(Interface):
> > > type = TextLine()
> > >
> > > class ICar(Interface):
> > >
> > > model = TextLine()
> > >
> > > wheel = ??? of type IWheel ???
> > wheel = schema.Object(schema=IWheel)
> > > or even better:
> > > wheel = List(min_length=4, max_length=4,
> > > value_type = ??? of type IWheel???)
> > value_type=schema.Object(schema=IWheel)
> > > What would be really great now is if formlib could handle this and
> > > would automatically set up the needed widgets.
> > Not sure what it does; I think you'd need to write some custom reference
> > widget type thing; you can't "fill in a wheel", really. :) Where would
> > the Wheel objects come from?
> This tutorial will be enough to get you started with a custom widget for
> your List->Object field.
Ah, that's very nice, thanks!
Tried it out and it seems to work for Objects() in the schema. However, for
Lists(value_type=Object()), I get permission problems:
ForbiddenAttribute: ('__getitem__', [<zbsp.fp.Email object at 0x31eed90>])
This happens whenever I try to access the list in any way (e.g. mylist or
for i in mylist...). So it seems, I have to declare permissions for this
list - but how? For the generic Python list object?
My permissions are declared like this:
I thought this would suffice?
GPG key ID: 299893C7 (on keyservers)
FP: 0124 2584 8809 EF2A DBF9 4902 64B4 D16B 2998 93C7
Zope3-users mailing list