Hi, I had a look at the Addressbook demo, which is quite complicated, therefore I at first try to set up a very simple application, very similar to the example in the doctest subform.txt, where I have a main object (car) that has a subobject (owner), which are stored together.
So, basically I'd like to make a working example out of the doctest. My problem is that the doctest seems to lack an important part, namely the creation of the subobject and the assignment to the parent object. Where would I do this? I assume, I'd need a create() method - but where? In the subform? Or parent form? Or both - one for the sub-object, one for the parent? I got it working like this in the parent object: def create(self, data): newcar = Car(**data) newcar.owner = Owner(**self.owner.widgets.extract()[0]) return newcar However, I don't really like this **self.owner.widgets.extract()[0] statement, to my mind there should be a prettier way? Moreover, maybe the owner object should be created in the OwnerAddForm instead of the CarAddForm? What I moreover don't understand in the subform.txt example is why the OwnerAddForm is of type form.EditForm instead of e.g. form.Form and the CarAddForm is not form.AddForm. This would also save the redefinition of updateWidgets(), I think. So, what about this: >>> class OwnerAddForm(form.AddSubForm): ... template = viewpagetemplatefile.ViewPageTemplateFile( ... 'simple_owneredit.pt', templatePath) ... fields = field.Fields(IOwner) ... prefix = 'owner' >>> class CarAddForm(form.AddForm): ... fields = field.Fields(ICar).select('model', 'make') ... template = viewpagetemplatefile.ViewPageTemplateFile( ... 'simple_caredit.pt', templatePath) ... prefix = 'car' ... ... def update(self): ... self.owner = OwnerAddForm(None, self.request) ... self.owner.update() ... super(CarAddForm, self).update() ... ... def create(self, data): ... newcar = Car(**data) ... newcar.owner = Owner(**self.owner.widgets.extract()[0]) ... return newcar What do you think? Best Regards, Hermann -- [EMAIL PROTECTED] GPG key ID: 299893C7 (on keyservers) FP: 0124 2584 8809 EF2A DBF9 4902 64B4 D16B 2998 93C7 _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users