So I have:
resources.py:
def _add(obj, name, parent):
obj.__name__ = name
obj.__parent__ = parent
return obj
class Root(object):
__parent__ = __name__ = None
def __init__(self, request):
super(Root, self).__init__()
self.request = request
self.collection = request.db.post
def __getitem__(self, key):
if u'profile' in key:
return Profile(self.request)
class Profile(dict):
def __init__(self, request):
super(Profile, self).__init__()
self.__name__ = u'profile'
self.__parent__ = Root
self.collection = request.db.posts
def __getitem__(self, name):
post = Dummy(self.collection.find_one(dict(username=name)))
return _add(post, name, self)
and I'm using MongoDB and pyramid_mongodb
views.py:
@view_config(context = Profile, renderer = 'templates/mytemplate.pt')
def test_view(request):
return {}
and in mytemplate.pt:
<p tal:repeat='item request.context'>
${item}
</p>
I can echo what's in the database (I'm using mongodb), but when I provided a URL for each item using resource_url()
<p tal:repeat='item request.context'>
<a href='${request.resource_url(item)}'>${item}</a>
</p>
I got an error: 'dict' object has no attribute '__name__', can someone help me?