Plone 如何在用户使用iUserLoggeDineEvent登录后获取门户对象

Plone 如何在用户使用iUserLoggeDineEvent登录后获取门户对象,plone,Plone,我正在尝试在用户登录后获取门户对象以创建文件夹。现在,我正在使用下面的事件订阅服务器。有更好的方法吗 <subscriber for="* Products.PluggableAuthService.interfaces.events.IUserLoggedInEvent" handler=".subscribers.createProfile" /> def createProfile(obj, event): portal = getT

我正在尝试在用户登录后获取门户对象以创建文件夹。现在,我正在使用下面的事件订阅服务器。有更好的方法吗

<subscriber
    for="*
         Products.PluggableAuthService.interfaces.events.IUserLoggedInEvent"
    handler=".subscribers.createProfile"
/>

def createProfile(obj, event):
    portal = getToolByName(obj.REQUEST.PUBLISHED, 'portal_url').getPortalObject()

def createProfile(对象,事件):
portal=getToolByName(obj.REQUEST.PUBLISHED,'portal_url')。getPortalObject()

您可以使用
getSite()
函数:

from zope.component.hooks import getSite

site = getSite() # returns portal root from thread local storage

您可以使用
getSite()
函数:

from zope.component.hooks import getSite

site = getSite() # returns portal root from thread local storage
Martijn是正确的(一如既往),但你也可以给旋转-这更容易:

from plone import api

portal = api.portal.get()
Martijn是正确的(一如既往),但你也可以给旋转-这更容易:

from plone import api

portal = api.portal.get()