[Zope3-Users] stuck with zope.schema.List and subwidget
Christian Lueck
christian.lueck at ruhr-uni-bochum.de
Fri Aug 26 19:01:04 EDT 2005
Hi!
Did anyone ever test or succeed using the subwidget-directive of
zope.app.form.browser.sequencewidget.SequenceWidget?
Following the lines of zope/app/form/browser/widgets.txt a widget for a
list of objects would be defined by something like this:
author_w = CustomWidgetFactory(ObjectWidget, Person)
class ArticleEditView(EditView):
authors_widget = CustomWidgetFactory(SequenceWidget, subwidget=author_w)
Instead of SequenceWidget I tried ListSequenceWidget, too.
But I allways get the error-message:
__init__() takes at least 4 arguments (3 given)
I'm really stuck. Which further argument should I pass to
CustomWidgetFactory? CustomWidgetFactory--if I get it right--calls the
constructur of SequenceWidget that complains about the missing argument.
(self, context, field, request, subwidget=None) is the list of arguments
of __init__
Especially: What should I pass as 'field'-argument?
I played around with the source code and changed the list to (self,
context, request, subwidget=None) and--WOW-- it presents a form yust as
I want it. [Now I allways get a new (schema-)error, which I can't track:
"Es gab *1* Eingabefehler."]
The constructor of SequenceWidget reads like this:
def __init__(self, context, field, request, subwidget=None):
super(SequenceWidget, self).__init__(context, request)
self.subwidget = subwidget
I really don't understand what is done with 'field'. Where is it passed
to?
Can someone give me a hint?
Kind regards,
Christian
PS. I found a way to define a widget for objects of objects yesterday,
see zope3-users. The example above is taken from there.
More information about the Zope3-users
mailing list