我尝试从事件中获取 IPubAfterTraversal 挂钩中的上下文对象
@grok.subscribe(IPubAfterTraversal)
def admin_language_negotiator(event):
"""
Event handler which pokes the language after traversing and authentication is done, but before rendering.
"""
# Keep the current request language (negotiated on portal_languages)
# untouched
request = event.request
if not IAddonSpecific.providedBy(request):
# Add on is not active
return
context = request.get("PUBLISHED", None)
我想做:
IContentish.providedBy(context) # Check if real content request or CSS/Image request
PUBLISHED 不是内容项上下文,但是:
context
<FSPageTemplate at /Plone/en/plan/plan/document_view>
PUBLISHED 可能会或可能不会指向一个观点。从 HTTPRequest 中获取已发布的内容项对象(如果有)的最安全方法是什么?