On Oct 5, 2005, at 1:12 PM, Matthew Russell wrote:

Hi,

I'm following Benji's quick_start.txt
...
TypeError: ('Could not adapt', <zope.publisher.browser.BrowserRequest
instance URL=http://localhost:8080/hello/@@edit.html>, <InterfaceClass
zope.interface.common.idatetime.ITZInfo>)

Hi Matt. Looks like that might be an omission from the quick start, and a reasonable one at that. We (Zope 3 devs) need to have a default story for adapting request to timezone if formlib is to be part of the trunk (and it is now). Here's a workaround (sorry that it makes you maybe do more than you should have to do for a "quick start").

Make a file, maybe called adapters.py in your package, with this in it:

import pytz
from zope import interface, component
from zope.interface.common.idatetime import ITZInfo
from zope.publisher.interfaces.browser import IBrowserRequest

@interface.implementer(ITZinfo)
@component.adapter(IBrowserRequest)
def tzinfo(request):
    return pytz.timezone('US/Eastern') # or whatever timezone you wish

I dunno if Benji is having you use zcml yet. If you are, add this to your zcml:

<adapter factory=".adapters.tzinfo" />

*Otherwise* try adding this to the end of your file--

component.provideAdapter(tzinfo)

--and make sure you import the adapters file from someplace so that it will actually run.

Gary
_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

Reply via email to