[Zope3-Users] ForbiddenAttribute error

Mikael Moutakis mikaelmoutakis at gmail.com
Fri Jul 6 10:29:03 EDT 2007


Hello
I wrote a feed aggregator using the module FeedParser. I stored the RSS feed
url in a persistant content component and retrieved the feed data in the
view class. But I thought that I should move the feed data into the content
component class instead of retrieving it in the view class. I get a
ForbiddenAttribute error when viewing the class

class Feed(Persistent):
    """A class that stores the feed URLs"""

    implements(IFeed)

    __name__ = __parent__ = None

    url=[]

    def getRawFeedData(self):
        return [feedparser.parse(item) for item in self.url]

class IFeed(Interface):

    def getRawFeedData():
        """retrieves raw feed data"""

    url = List (
                        title = u"URL",
                        description = u"URL for newsfeed",
                        required = True,
                        value_type=TextLine(title=u"Tool")
                        )

The content component and the interface are registred as thus:

  <class class=".components.Feed">
    <implements
        interface="zope.annotation.interfaces.IAttributeAnnotatable"
        />
    <require
        permission="zope.View"
        interface =".interfaces.IFeed"
      />
    <require
        permission="zope.ManageContent"
        set_schema=".interfaces.IFeed"
      />
    </class>


    <!-- marker interface for feed -->
    <interface
        interface=".interfaces.IFeed"
        type="zope.app.content.interfaces.IContentType"
      />

And the browser class

class FeedView(BrowserPage):
    """A view for the RSS feed aggregator object"""

    __call__ = ViewPageTemplateFile("feed_view.pt")


    def getMetadata(self):
        """Retrieves the title and description of the feed aggregator from
the persistant storage"""
        return IZopeDublinCore(self.context)


    def getFeed(self):

        feeds=self.context.getRawFeedData()

        result=[]
        for feed in feeds:
            ######## it fails here #############
            result+=[(e.updated_parsed, feed.channel, e) for e in
feed.entries ]
        result.sort(reverse=True)
        return result

Which is registered in the following way

  <!-- simple browser view of a single feed aggregator -->
  <browser:page
      for="kousai.feedreader.interfaces.IFeed"
      name="index.html"
      class="kousai.feedreader.browser.components.FeedView"
      permission="zope.View"
    />

The traceback

...

  File "/Users/admin/Zope-3.3.1/build/lib.darwin-
8.9.0-Power_Macintosh-2.4/zope/tales/tales.py", line 696, in evaluate
    return expression(self)
   -
/Users/mikaelmoutakis/zpi/myfiles/kousai/feedreader/browser/feed_view.pt
   - Line 15, Column 2
   - Expression: <PythonExpr ( view.getFeed()[0:10])>
   - Names:
      {'args': (),
       'context': <kousai.feedreader.components.Feed object at 0x3772c70>,
       'default': <object object at 0x41560>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': {},
       'request': <zope.publisher.browser.BrowserRequest instance URL=
http://localhost:8080/++skin++Kousai/feed/index.html>,
       'template': <
zope.app.pagetemplate.viewpagetemplatefile.ViewPageTemplateFile object at
0x307d3f0>,
       'usage': <zope.pagetemplate.pagetemplate.TemplateUsage object at
0x37e35d0>,
       'view': <zope.app.publisher.browser.viewmeta.FeedView object at
0x37e3270>,
       'views':
<zope.app.pagetemplate.viewpagetemplatefile.ViewMapperobject at
0x37e3250>}
  File "/Users/admin/Zope-3.3.1/build/lib.darwin-
8.9.0-Power_Macintosh-2.4/zope/tales/pythonexpr.py", line 59, in __call__
    return eval(self._code, vars)
   - __traceback_info__: ( view.getFeed()[0:10])
  File "<string>", line 0, in ?
  File
"/Users/mikaelmoutakis/zpi/myfiles/kousai/feedreader/browser/components.py",
line 39, in getFeed
    result+=[(e.updated_parsed, feed.channel, e) for e in feed.entries ]
ForbiddenAttribute: ('entries', {'feed': {'publisher'.....
....

Haven't I declared the getRawFeedData method by including it in the IFeed
interface?

Thanks!

/Mikael M
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope3-users/attachments/20070706/acde711f/attachment.htm


More information about the Zope3-users mailing list