Hi there, I have a Problem regarding to the creation and the
editing of several objects with one single form. I do the creation with an AddForm, which uses formlib,
the schemas IFooContainer und IFooContained and a modified createAndAdd function.
Once the form is sent correctly, it creates a FooContainer object, a
FooContained object and adds FooContained to FooContainer. That’s the way
it should be and that’s the way it already works. The actual problem is the EditForm. Basically I do
the same as above, using formlib and the two schemas. But now I get the
following traceback: ------ 2006-11-03T10:51:55 ERROR SiteError http://localhost:8080/foocontainer01/@@editForm.html Traceback (most recent call last): File
"C:\Python24\Lib\site-packages\zope\publisher\publish.py", line 138,
in publish result =
publication.callObject(request, object) File
"C:\Python24\Lib\site-packages\zope\app\publication\zopepublication.py",
line 161, in callObject return mapply(ob,
request.getPositionalArguments(), request) File
"C:\Python24\Lib\site-packages\zope\publisher\publish.py", line 113,
in mapply return debug_call(object, args) File
"C:\Python24\Lib\site-packages\zope\publisher\publish.py", line 119,
in debug_call return object(*args) File
"C:\Python24\Lib\site-packages\zope\formlib\form.py", line 738, in
__call__ self.update() File "C:\Python24\Lib\site-packages\zope\formlib\form.py",
line 707, in update self.setUpWidgets() File
"C:\Python24\Lib\site-packages\zope\formlib\form.py", line 768, in
setUpWidgets adapters=self.adapters,
ignore_request=ignore_request File
"C:\Python24\Lib\site-packages\zope\formlib\form.py", line 345, in
setUpEditWidgets adapter = interface(context) File
"C:\Python24\Lib\site-packages\zope\interface\interface.py", line
682, in __call__ raise TypeError("Could not
adapt", obj, self) TypeError: ('Could not adapt', <FooContainer object
at 0x03080E30>, <InterfaceClass IFooContained>) ----- The error seems to occur in the following line (the
second one): class MonolithicEditForm(form.EditForm): form_fields = form.Fields(IFooContainer).__add__(form.FormFields(IFooContained)) That works with the AddForm, but not with the EditForm.
How can I tell the system that several of the formfields belong to the
FooContainer object and the rest belongs to the FooContained object? Is there a
way to do this? Thanks I advance, Arne PS: I’m working with Zope 3.3 and Python 2.4 |
_______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users