Hi Adam > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Adam Groszer > Sent: Thursday, April 14, 2005 7:29 PM > To: zope3-users > Subject: [Zope3-Users] stuck with zope.schema.Object > > I defined an interface like this: > > class IBejegyzes(Interface): > <snip> > sablon = Text( > title=u"Sablon", > required=True > ) > > implemented it: > > class Bejegyzes(BTreeContainer): > implements(IBejegyzes, IBejegyzesContainer, IBejegyzesContained) > <snip> > sablon = FieldProperty(IBejegyzes['sablon']) > > configured it: > > <interface > interface=".interfaces.IBejegyzes" > type="zope.app.content.interfaces.IContentType" > /> > > <content class=".bejegyzes.Bejegyzes"> > <factory > id="dkr.Bejegyzes" > title="Uj bejegyzés készitése" > description="This factory instantiates new Bejegyzes" > /> > <implements > > interface="zope.app.annotation.interfaces.IAttributeAnnotatable > zope.app.container.interfaces.IContentContainer" > /> > <require > permission="zope.View" > interface=".interfaces.IBejegyzes" > /> > <require > permission="zope.ManageContent" > interface=".interfaces.IBejegyzesContainer" > /> > <require > permission="zope.ManageContent" > set_schema=".interfaces.IBejegyzes" > /> > </content> > > <browser:addform > label="Uj Bejegyzés" > name="AddBejegyzes.html" > schema="dkr.interfaces.IBejegyzes" > content_factory="dkr.bejegyzes.Bejegyzes" > permission="zope.ManageContent" > set_before_add="code" > /> > > <browser:addMenuItem > title="Bejegyzés" > class="dkr.bejegyzes.Bejegyzes" > permission="zope.ManageContent" > view="AddBejegyzes.html" > /> > > it works fine. As soon as I change the interface to: (and delete > data.fs and friends) > > class IBejegyzes(Interface): > <snip> > sablon = Object( > schema=ISablon, > title=u"Sablon", > required=True > ) > > as I want to add a new object to it's container, the following > exception comes: > > File "Y:\zope\svn_zope3\src\zope\component\__init__.py", > line 154, in getMulti > Adapter > raise ComponentLookupError(objects, interface, name) > ComponentLookupError: ((<zope.schema._field.Object object at > 0x030F91F0>, <zope. > publisher.browser.BrowserRequest instance > URL=http://localhost:8080/2/@@+/action > .html>), <InterfaceClass zope.app.form.interfaces.IInputWidget>, u'') > 127.0.0.1 - zope.manager [14/Apr/2005:19:22:46 +0200] "GET > /2/@@+/action.html?ty > pe_name=AddBejegyzes.html HTTP/1.1" 500 311 > "http://localhost:8080/2/@@contents. > html" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; > rv:1.7.6) Gecko/20050317 > Firefox/1.0.2" > > Do I missed something? What is the problem?
Yup, you have to define custom widgets with ObjectWidget if you use Object fields. I added a sample which explains it in the file: zope.app.form.browser.objectwidget.txt Regards Roger Ineichen Projekt01 GmbH www.projekt01.ch _____________________________ END OF MESSAGE > -- > Best regards, > Adam mailto:[EMAIL PROTECTED] > > > _______________________________________________ > Zope3-users mailing list > Zope3-users@zope.org > http://mail.zope.org/mailman/listinfo/zope3-users > _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users