Hi, On Mon, May 29, 2006 at 08:26:38PM +0200, Achim Domma wrote: > Hi, > > I have implemented ArticleFolder and Article like this: > > > class Article(Persistent,Contained): > implements(IArticle) > title=u'' > body=u'' > > class ArticleFolder(Folder): > implements(IArticleFolder) > > > Via ZMI I can add, edit and delete articles without problems. I use this TAL > statement in a view > for the object holding the article folder : > > <p tal:repeat="article context/articles"> > <a > tal:content="article/title" > tal:attributes="href article/@@absolute_url">asdf</a> > </p> > > This fails with an "There isn't enough context to get URL information." > exception. When the > exception is thrown, I see in the debugger, that the context of AbsoluteUrl > is the id of the first > article as unicode string. And this string has of course no __parent__ > attribute!? > > I argued that context/articles might return ids, not objects, but in that > case article/title > should fail also. But if I remove tal:attributes, it works fine.
Remembering your last problem with Object()-schema, my guess is that you stored your articles as a list ob Object()s in an articlefolder's 'articles'-attribute. This way a single article doesn't have an URL - it's just an attribute - no matter which base classes (->Contained) you use. You've got two options: 1. A view on articlefolder that take some arguments and displays a given article. You'd have to use something like this then: <a ... tal:attributes="href ${context/@@absolute_url}/articleview?${article/title}" ... /> 2. Write your own traversal adapter that displays objects in lists like this: <a ... tal:attributes="href ${context/@@absolute_url}/++article++${article/title}" ... /> If I were you, I'd take option one (if I guessed your problem right :-) ). Regards, Frank _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users