我正在尝试在用户登录后获取门户网站对象以创建文件夹。现在,我正在使用以下活动订阅者。有更好的方法吗?
<subscriber
for="*
Products.PluggableAuthService.interfaces.events.IUserLoggedInEvent"
handler=".subscribers.createProfile"
/>
def createProfile(obj, event):
portal = getToolByName(obj.REQUEST.PUBLISHED, 'portal_url').getPortalObject()
答案 0 :(得分:8)
您可以使用getSite()
功能:
from zope.component.hooks import getSite
site = getSite() # returns portal root from thread local storage
答案 1 :(得分:1)
Martijn是正确的(一如既往),但你也可以给plone.api一个旋转 - 它更容易:
from plone import api
portal = api.portal.get()