ので、私は持っています:
リソース.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)
私はMongoDBを使用していますpyramid_mongodb
ビュー.py:
@view_config(context = Profile, renderer = 'templates/mytemplate.pt')
def test_view(request):
return {}
および mytemplate.pt で:
<p tal:repeat='item request.context'>
${item}
</p>
データベースにあるものをエコーできます(私はmongodbを使用しています)が、使用して各アイテムのURLを提供したときresource_url()
<p tal:repeat='item request.context'>
<a href='${request.resource_url(item)}'>${item}</a>
</p>
エラーが発生しました: 'dict' object has no attribute '__name__'
、誰か助けてくれませんか?