Как я могу получить объект из ZODB по URL?
Как я могу получить объект из базы данных ZODB в проекте Zope3 по URL ' http://ecample.com/folder1/object1'?
obj1 = someMethod('http://ecample.com/folder1/object1')
Есть ли инструменты для этого? Вроде absoluteUrl() но наоборот? Или я должен разобрать URL и вручную получить объект из корня БД?... Спасибо
1 ответ
Решение
Вы можете превратить путь в объект, используя обходной API:
from zope.traversing.api import traverse
obj = traverse(context, path)
Вам понадобится контекст для перехода; например, используйте корень сайта для URL-путей. Если все, что у вас есть, это URL-адрес, вам нужно разобрать путь по нему:
from urlparse import urlparse
path = urlparse(url).path