Hi again,<br><br>I now have all three forms giving me the component lookup error -- as you sugguested, I changed zope.ManageContent to zope.Public; I&#39;d rather have one problem at a time. I also have a full traceback, because I realized that I didn&#39;t include one last night:
<br><br><div style="margin-left: 40px;">zope.component.interfaces.ComponentLookupError:<br>((&lt;z3c.pagelet.zcml.NextActionAddForm object at 0x2b69896b4850&gt;, &lt;zope.publisher.browser.BrowserRequest instance URL=<a href="http://localhost:9080/++skin++MovingTargetBrowser/addNextAction.html">
http://localhost:9080/++skin++MovingTargetBrowser/addNextAction.html</a>&gt;, &lt;zope.app.folder.folder.Folder object at 0x2b69896eb0c8&gt;), &lt;InterfaceClass z3c.form.interfaces.IWidgets&gt;, u&#39;&#39;)<br>&gt; /opt/zope/zope-
3.4.0a1/lib/python/zope/component/_api.py(103)getMultiAdapter()<br>-&gt; raise ComponentLookupError(objects, interface, name)<br>(Pdb)<br>Traceback (most recent call last):<br>&nbsp; File &quot;/opt/zope/python2.4//lib/python2.4/threading.py&quot;, line 422, in run
<br>&nbsp;&nbsp;&nbsp; self.__target(*self.__args, **self.__kwargs)<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/twisted/python/threadpool.py&quot;, line 148, in _worker<br>&nbsp;&nbsp;&nbsp; context.call(ctx, function, *args, **kwargs)<br>&nbsp; File &quot;/opt/zope/zope-
3.4.0a1/lib/python/twisted/python/context.py&quot;, line 59, in callWithContext<br>&nbsp;&nbsp;&nbsp; return self.currentContext().callWithContext(ctx, func, *args, **kw)<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/twisted/python/context.py&quot;, line 37, in callWithContext
<br>&nbsp;&nbsp;&nbsp; return func(*args,**kw)<br>--- &lt;exception caught here&gt; ---<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/twisted/web2/wsgi.py&quot;, line 198, in run<br>&nbsp;&nbsp;&nbsp; result = self.application(self.environment, self.startWSGIResponse
)<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/zope/app/wsgi/__init__.py&quot;, line 72, in __call__<br>&nbsp;&nbsp;&nbsp; return app.__call__(environ, start_response)<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/zope/app/wsgi/__init__.py&quot;, line 54, in __call__
<br>&nbsp;&nbsp;&nbsp; request = publish(request, handle_errors=handle_errors)<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/zope/publisher/publish.py&quot;, line 133, in publish<br>&nbsp;&nbsp;&nbsp; result = publication.callObject(request, obj)<br>
&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/zope/app/publication/zopepublication.py&quot;, line 161, in callObject<br>&nbsp;&nbsp;&nbsp; return mapply(ob, request.getPositionalArguments(), request)<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1
/lib/python/zope/publisher/publish.py&quot;, line 108, in mapply<br>&nbsp;&nbsp;&nbsp; return debug_call(obj, args)<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/zope/publisher/publish.py&quot;, line 114, in debug_call<br>&nbsp;&nbsp;&nbsp; return obj(*args)
<br>&nbsp; File &quot;/opt/zope/python2.4/lib/python2.4/site-packages/z3c.form-1.3.0-py2.4.egg/z3c/form/form.py&quot;, line 144, in __call__<br>&nbsp;&nbsp;&nbsp; self.update()<br>&nbsp; File &quot;/opt/zope/python2.4/lib/python2.4/site-packages/z3c.form-
1.3.0-py2.4.egg/z3c/form/form.py&quot;, line 139, in update<br>&nbsp;&nbsp;&nbsp; super(Form, self).update()<br>&nbsp; File &quot;/opt/zope/python2.4/lib/python2.4/site-packages/z3c.form-1.3.0-py2.4.egg/z3c/form/form.py&quot;, line 88, in update
<br>&nbsp;&nbsp;&nbsp; self.updateWidgets()<br>&nbsp; File &quot;/opt/zope/python2.4/lib/python2.4/site-packages/z3c.form-1.3.0-py2.4.egg/z3c/form/form.py&quot;, line 167, in updateWidgets<br>&nbsp;&nbsp;&nbsp; self.widgets = zope.component.getMultiAdapter
(<br>&nbsp; File &quot;/opt/zope/zope-3.4.0a1/lib/python/zope/component/_api.py&quot;, line 103, in getMultiAdapter<br>&nbsp;&nbsp;&nbsp; raise ComponentLookupError(objects, interface, name)<br>zope.component.interfaces.ComponentLookupError: ((&lt;
z3c.pagelet.zcml.NextActionAddForm object at 0x2b69896b4850&gt;, &lt;zope.publisher.browser.BrowserRequest instance URL=<a href="http://localhost:9080/++skin++MovingTargetBrowser/addNextAction.html">http://localhost:9080/++skin++MovingTargetBrowser/addNextAction.html
</a>&gt;, &lt;zope.app.folder.folder.Folder object at 0x2b69896eb0c8&gt;), &lt;InterfaceClass z3c.form.interfaces.IWidgets&gt;, u&#39;&#39;)<br></div><br>I keep reading over the .txt files in z3c.form, and I feel like I may be missing some line. Do I need a datamanager? My schema is pretty straightforward:
<br><br><div style="margin-left: 40px;">from zope.interface import Interface<br>from zope.schema import Bool, Text, Datetime, TextLine<br><br>class INextAction(Interface):<br>&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;Stores next actions, or the next physical
<br>&nbsp;&nbsp;&nbsp; thing a person can do for a project&quot;&quot;&quot;<br><br>&nbsp;&nbsp;&nbsp; id = TextLine(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title=u&#39;ID&#39;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readonly=True,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required=True)<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; description = Text(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title = u&quot;Description&quot;,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description = u&quot;What is the next things you can physically do?&quot;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required = True<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br><br>&nbsp;&nbsp;&nbsp; done = Bool(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title = u&quot;Done?&quot;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description = u&quot;Is this Next Action complete?&quot;,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required = False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br><br>&nbsp;&nbsp;&nbsp; due = Datetime(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title = u&quot;Due date.&quot;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description = u&quot;When must this action be complete?&quot;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required = False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )
<br></div><br>Thanks again for all the advice; I feel like I&#39;m making a little more progress now :)<br><br>Gratefully,<br>Matt<br><br><div><span class="gmail_quote">On 7/4/07, <b class="gmail_sendername">Hermann Himmelbauer
</b> &lt;<a href="mailto:dusty@qwer.tk">dusty@qwer.tk</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Am Mittwoch, 4. Juli 2007 00:33 schrieb Matt Bowen:
<br>&gt; That was not at all a silly question! That got me a little closer -- I am<br>&gt; new enough not to have understood that i needed the ++skin++. Now, instead<br>&gt; of a 404 page, I get the following when I try to display my object:
<br>&gt;<br>&gt; <a href="http://127.0.0.1">127.0.0.1</a> - - [03/Jul/2007:18:26:54 -0400] &quot;GET<br>&gt; /++skin++MovingTargetBrowser/viewguy/ HTTP/1.1&quot; 500 131 &quot;-&quot; &quot;Mozilla/5.0<br>&gt; (X11; U; Linux i686 (x86_64); en-US; rv:
<a href="http://1.8.1.4">1.8.1.4</a>) Gecko/20070515<br>&gt; Firefox/2.0.0.4&quot;<br>&gt; zope.component.interfaces.ComponentLookupError:<br>&gt; ((&lt;z3c.pagelet.zcml.NextActionDisplayForm object at 0x2aaaaaffb6d0&gt;, &lt;
<br>&gt; zope.publisher.browser.BrowserRequest instance URL=<br>&gt; <a href="http://localhost:9080/++skin++MovingTargetBrowser/viewguy/index.html">http://localhost:9080/++skin++MovingTargetBrowser/viewguy/index.html</a>&gt;, &lt;
<br>&gt; movingtarget.nextaction.NextAction object at 0x2adbcf6cd2a8&gt;),<br>&gt; &lt;InterfaceClass z3c.form.interfaces.IWidgets&gt;, u&#39;&#39;)<br><br>This looks like some problem with widgets, I&#39;m not sure. Such errors can be
<br>quite frustrating, I do it like this:<br><br>- locate where the adapter is queried, this will be somewhere in the z3c.form<br>package<br>- If not sure, use &quot;print &#39;HERE I AM&#39;&quot; statements in the source to find out
<br>where the exception is raised<br>- When you found the code line, things hopefully resolve<br>- Sometimes your object/request is not marked with the requested interface,<br>you can check that out with a &quot;print<br>
IRequestedInterface.providedBy(myobject)&quot; in the framework source.<br><br>I know that it is probably a bad style to temporarily modify the framework<br>source but I can&#39;t think of a better solution.<br><br>Over the time you&#39;ll start to &quot;smell&quot; why these component lookup errors happen
<br>and resolve them more easily.<br><br>&gt; And for edit, I get this:<br>&gt;<br>&gt; <a href="http://127.0.0.1">127.0.0.1</a> - - [03/Jul/2007:18:30:30 -0400] &quot;GET<br>&gt; /++skin++MovingTargetBrowser/viewguy/ HTTP/1.1&quot; 500 201 &quot;-&quot; &quot;Mozilla/5.0
<br>&gt; (X11; U; Linux i686 (x86_64); en-US; rv:<a href="http://1.8.1.4">1.8.1.4</a>) Gecko/20070515<br>&gt; Firefox/2.0.0.4&quot;<br>&gt; zope.security.interfaces.Unauthorized:<br>&gt; (&lt;z3c.pagelet.zcml.NextActionEditForm
 object at 0x2aaaaaf9dfd0&gt;,<br>&gt; &#39;browserDefault&#39;, &#39;zope.ManageContent&#39;)<br>&gt;<br>&gt; &gt; /opt/zope/zope-3.4.0a1<br>&gt;<br>&gt; /lib/python/zope/app/publication/browser.py(66)getDefaultTraversal()
<br>&gt; -&gt; return ob.browserDefault(request)<br><br>Maybe you did not log in into the Zope instance? You set the permissions<br>to &quot;zope.ManageContent&quot;, you could also change this to &quot;zope.Public&quot; and try
<br>it again.<br><br>Regards,<br>Hermann<br><br>--<br><a href="mailto:x1@aon.at">x1@aon.at</a><br>GPG key ID: 299893C7 (on keyservers)<br>FP: 0124 2584 8809 EF2A DBF9&nbsp;&nbsp;4902 64B4 D16B 2998 93C7<br></blockquote></div><br>