我有一个让我担心的问题。我有一个几乎只使用遍历的应用程序。
为了获得我的管理路径,我有一个连接到根的节点。on __getitem__
,它返回parent.__getitem__
这是我的实际根。与containment
我的看法。我可以检查是否包含此管理节点。
问题发生在重新生根时。当我这样做时
class AdminRoot(object):
__acl__ = [
(Allow, 'g:admin', ALL_PERMISSIONS),
(Deny, 'system.Everyone', ALL_PERMISSIONS),
]
def __init__(self, parent, name):
self.__parent__ = parent
self.__name__ = name
def __getitem__(self, name):
item = Mapping.__getitem__(self.__parent__, name)
item.__parent__ = self
return item
什么时候self
影响到item.__parent__
。它有时会保存为父节点。出于这个原因,当做request.resource_url
. 它将从管理员根或真正的根输出。
我希望这种矫揉造作永远不会被挽救。