Hi,
I try to figure out how to make attributes holding content objects
accessible via the browser. Using the code below, I get a "There isn't
enough context to get URL information." exception if I try to access the
attribute via URL or via Introspector.
The exception is raised in the breadcrumbs function in absoluteurl.py.
It looks like the __parent__ attribute of the contained object is not
set, but I don't understand why?
This is the interface of the object holding subobjects:
class IWorkspace(ISimpleReadContainer):
title = TextLine(
title=u"Title",
description=u"The title",
default=u"proCoders Workspace",
required=True)
projects = Container(title=u"Projects", description=u"xxx")
articles = Container(title=u"Articles", description=u"xxx")
The object is implemented as:
class Workspace(Persistent):
implements(IWorkspace)
title=u'proCoders workspace'
projects=None
articles=None
def __getitem__(self,key):
return getattr(self,key)
def get(self,key, default=None):
return getattr(self,key)
To initialize projects and articles, I have registered an event
subscriber:
def onObjectCreated(parent,event):
if IWorkspace.providedBy(event.object):
workspace=IWorkspace(event.object)
setitem(workspace,
workspace.__setattr__,"projects",ProjectFolder())
setitem(workspace,
workspace.__setattr__,"articles",ArticleFolder())
regards,
Achim
_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users