Roger, Thanks again for trying to help me out. I think I'm having some registration issues that I'm not sure what to do with. Using the example you posted I receive the following error:
Traceback (most recent call last): Module zope.publisher.publish, line 133, in publish result = publication.callObject(request, obj) Module zope.app.publication.zopepublication, line 161, in callObject return mapply(ob, request.getPositionalArguments(), request) Module zope.publisher.publish, line 108, in mapply return debug_call(obj, args) - __traceback_info__: <security proxied z3c.pagelet.zcml.RestaurantAddForm instance at 0x02E33F90> Module zope.publisher.publish, line 114, in debug_call return obj(*args) Module z3c.formui.layout, line 34, in __call__ self.update() Module metrod.restaurant.browser.restaurant, line 33, in update self.address.update() Module z3c.form.form, line 134, in update super(Form, self).update() Module z3c.form.form, line 83, in update self.updateWidgets() Module metrod.restaurant.browser.address, line 25, in updateWidgets self.widgets.update() Module z3c.form.field, line 245, in update widget.update() Module z3c.form.widget, line 96, in update value = zope.component.getMultiAdapter( Module z3c.form.datamanager, line 48, in get context = self.field.interface(context) TypeError: ('Could not adapt', None, <InterfaceClass metrod.restaurant.interfaces.IAddress>) My forms look like this: browser/restaurant.py class RestaurantAddForm(AddFormLayoutSupport, form.EditForm): """Add form""" template = None layout = None contentName = None label = u'Add Restaurant' prefix = u'restaurant' fields = field.Fields(IRestaurant) def updateWidgets(self): self.widgets = component.getMultiAdapter(( self, self.request, self.getContent()), IWidgets) self.widgets.ignoreContext = True self.widgets.update() def update(self): self.address = AddressAddForm(None, self.request) self.address.update() super(RestaurantAddForm, self).update() browser/address.py class AddressAddForm(AddFormLayoutSupport, form.EditForm): template = None layout = None contentName = None label = u'Address' fields = field.Fields(IAddress) prefix = u'address' def updateWidgets(self): self.widgets = component.getMultiAdapter(( self, self.request, self.getContent()), IWidgets) self.widgets.ignoreRequest = True self.widgets.update() I have them registered like this: <z3c:pagelet name="addRestaurant.html" for="zope.app.container.interfaces.IContainer" class=".restaurant.RestaurantAddForm" layer="metrod.app.layer.IMetroDBrowserLayer" permission="zope.Public" /> <z3c:template template="restaurant.pt" for=".restaurant.RestaurantAddForm" layer="metrod.app.layer.IMetroDBrowserLayer" /> <z3c:template template="address.pt" for=".address.AddressAddForm" layer="metrod.app.layer.IMetroDBrowserLayer" /> Thanks again for all your time and help, Mats Nordgren > Hi Mats > >> Betreff: Re: [Zope3-Users] AW: z3c.form and subforms in an AddForm? >> >> >> Roger, >> >> Thanks for your reply. I'm still having problems getting >> this to work. >> >> I'm not sure I am supposed to use a BaseForm, Form, AddForm, >> or what, for the sub-item. I'm not sure how to register it >> in zcml to not get adaption errors when I run it. >> >> Would there be any chance to have the example with the "car" >> and "owner" in the Sub-Form doc test included in the formdemo >> package. I'd like to see that included with "Class I" and >> "Class II" for both AddForm and EditForm since it is such a >> common use case. >> >> Perhaps I'm just dense, but I still have problems converting >> doc tests into an actual working zope instance. The formdemo >> package was a god send to get a simple addform working since >> I had no idea you needed to use the IFormLayer. Using the >> demo that was no longer a problem. >> >> Again thanks for all your help. > > Ok, the context less demo is in revision 76745. > > svn://svn.zope.org/repos/main/z3c.form/trunk/src/z3c/form/subform.txt > > line 489 - 608 > > Regards > Roger Ineichen -- View this message in context: http://www.nabble.com/z3c.form-and-subforms-in-an-AddForm--tf3929436.html#a11171577 Sent from the Zope3 - users mailing list archive at Nabble.com. _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users