Hi again,

I now have all three forms giving me the component lookup error -- as you
sugguested, I changed zope.ManageContent to zope.Public; I'd rather have one
problem at a time. I also have a full traceback, because I realized that I
didn't include one last night:

zope.component.interfaces.ComponentLookupError:
((<z3c.pagelet.zcml.NextActionAddForm object at 0x2b69896b4850>, <
zope.publisher.browser.BrowserRequest instance URL=
http://localhost:9080/++skin++MovingTargetBrowser/addNextAction.html>, <
zope.app.folder.folder.Folder object at 0x2b69896eb0c8>), <InterfaceClass
z3c.form.interfaces.IWidgets>, u'')
/opt/zope/zope-3.4.0a1
/lib/python/zope/component/_api.py(103)getMultiAdapter()
-> raise ComponentLookupError(objects, interface, name)
(Pdb)
Traceback (most recent call last):
 File "/opt/zope/python2.4//lib/python2.4/threading.py", line 422, in run
   self.__target(*self.__args, **self.__kwargs)
 File "/opt/zope/zope-3.4.0a1/lib/python/twisted/python/threadpool.py",
line 148, in _worker
   context.call(ctx, function, *args, **kwargs)
 File "/opt/zope/zope-3.4.0a1/lib/python/twisted/python/context.py", line
59, in callWithContext
   return self.currentContext().callWithContext(ctx, func, *args, **kw)
 File "/opt/zope/zope-3.4.0a1/lib/python/twisted/python/context.py", line
37, in callWithContext
   return func(*args,**kw)
--- <exception caught here> ---
 File "/opt/zope/zope-3.4.0a1/lib/python/twisted/web2/wsgi.py", line 198,
in run
   result = self.application(self.environment, self.startWSGIResponse)
 File "/opt/zope/zope-3.4.0a1/lib/python/zope/app/wsgi/__init__.py", line
72, in __call__
   return app.__call__(environ, start_response)
 File "/opt/zope/zope-3.4.0a1/lib/python/zope/app/wsgi/__init__.py", line
54, in __call__
   request = publish(request, handle_errors=handle_errors)
 File "/opt/zope/zope-3.4.0a1/lib/python/zope/publisher/publish.py", line
133, in publish
   result = publication.callObject(request, obj)
 File 
"/opt/zope/zope-3.4.0a1/lib/python/zope/app/publication/zopepublication.py",
line 161, in callObject
   return mapply(ob, request.getPositionalArguments(), request)
 File "/opt/zope/zope-3.4.0a1/lib/python/zope/publisher/publish.py", line
108, in mapply
   return debug_call(obj, args)
 File "/opt/zope/zope-3.4.0a1/lib/python/zope/publisher/publish.py", line
114, in debug_call
   return obj(*args)
 File "/opt/zope/python2.4/lib/python2.4/site-packages/z3c.form-
1.3.0-py2.4.egg/z3c/form/form.py", line 144, in __call__
   self.update()
 File "/opt/zope/python2.4/lib/python2.4/site-packages/z3c.form-
1.3.0-py2.4.egg/z3c/form/form.py", line 139, in update
   super(Form, self).update()
 File "/opt/zope/python2.4/lib/python2.4/site-packages/z3c.form-
1.3.0-py2.4.egg/z3c/form/form.py", line 88, in update
   self.updateWidgets()
 File "/opt/zope/python2.4/lib/python2.4/site-packages/z3c.form-
1.3.0-py2.4.egg/z3c/form/form.py", line 167, in updateWidgets
   self.widgets = zope.component.getMultiAdapter(
 File "/opt/zope/zope-3.4.0a1/lib/python/zope/component/_api.py", line 103,
in getMultiAdapter
   raise ComponentLookupError(objects, interface, name)
zope.component.interfaces.ComponentLookupError: ((<
z3c.pagelet.zcml.NextActionAddForm object at 0x2b69896b4850>, <
zope.publisher.browser.BrowserRequest instance URL=
http://localhost:9080/++skin++MovingTargetBrowser/addNextAction.html>, <
zope.app.folder.folder.Folder object at 0x2b69896eb0c8>), <InterfaceClass
z3c.form.interfaces.IWidgets>, u'')

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:

from zope.interface import Interface
from zope.schema import Bool, Text, Datetime, TextLine

class INextAction(Interface):
   """Stores next actions, or the next physical
   thing a person can do for a project"""

   id = TextLine(
       title=u'ID',
       readonly=True,
       required=True)

   description = Text(
       title = u"Description",
       description = u"What is the next things you can physically do?",
       required = True
       )

   done = Bool(
       title = u"Done?",
       description = u"Is this Next Action complete?",
       required = False
       )

   due = Datetime(
       title = u"Due date.",
       description = u"When must this action be complete?",
       required = False
       )

Thanks again for all the advice; I feel like I'm making a little more
progress now :)

Gratefully,
Matt

On 7/4/07, Hermann Himmelbauer <[EMAIL PROTECTED]> wrote:

Am Mittwoch, 4. Juli 2007 00:33 schrieb Matt Bowen:
> That was not at all a silly question! That got me a little closer -- I
am
> new enough not to have understood that i needed the ++skin++. Now,
instead
> of a 404 page, I get the following when I try to display my object:
>
> 127.0.0.1 - - [03/Jul/2007:18:26:54 -0400] "GET
> /++skin++MovingTargetBrowser/viewguy/ HTTP/1.1" 500 131 "-" "Mozilla/5.0
> (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.4) Gecko/20070515
> Firefox/2.0.0.4"
> zope.component.interfaces.ComponentLookupError:
> ((<z3c.pagelet.zcml.NextActionDisplayForm object at 0x2aaaaaffb6d0>, <
> zope.publisher.browser.BrowserRequest instance URL=
> http://localhost:9080/++skin++MovingTargetBrowser/viewguy/index.html>, <
> movingtarget.nextaction.NextAction object at 0x2adbcf6cd2a8>),
> <InterfaceClass z3c.form.interfaces.IWidgets>, u'')

This looks like some problem with widgets, I'm not sure. Such errors can
be
quite frustrating, I do it like this:

- locate where the adapter is queried, this will be somewhere in the
z3c.form
package
- If not sure, use "print 'HERE I AM'" statements in the source to find
out
where the exception is raised
- When you found the code line, things hopefully resolve
- Sometimes your object/request is not marked with the requested
interface,
you can check that out with a "print
IRequestedInterface.providedBy(myobject)" in the framework source.

I know that it is probably a bad style to temporarily modify the framework
source but I can't think of a better solution.

Over the time you'll start to "smell" why these component lookup errors
happen
and resolve them more easily.

> And for edit, I get this:
>
> 127.0.0.1 - - [03/Jul/2007:18:30:30 -0400] "GET
> /++skin++MovingTargetBrowser/viewguy/ HTTP/1.1" 500 201 "-" "Mozilla/5.0
> (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.4) Gecko/20070515
> Firefox/2.0.0.4"
> zope.security.interfaces.Unauthorized:
> (<z3c.pagelet.zcml.NextActionEditForm object at 0x2aaaaaf9dfd0>,
> 'browserDefault', 'zope.ManageContent')
>
> > /opt/zope/zope-3.4.0a1
>
> /lib/python/zope/app/publication/browser.py(66)getDefaultTraversal()
> -> return ob.browserDefault(request)

Maybe you did not log in into the Zope instance? You set the permissions
to "zope.ManageContent", you could also change this to "zope.Public" and
try
it again.

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

Reply via email to