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__


  File "C:\Python24\Lib\site-packages\zope\formlib\form.py", line 707, in update


  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,




PS: I’m working with Zope 3.3 and Python 2.4

Zope3-users mailing list

Reply via email to