gpt4 book ai didi

plone - 创建内容类型后如何执行操作?

转载 作者:行者123 更新时间:2023-12-04 14:46:58 24 4
gpt4 key购买 nike

我正在尝试在创建 Dexterity 内容类型后执行一些任意代码。例如,内容类型可以代表一匹马。

import logging
logger = logging.getLogger("Plone")

class IHorse(form.Schema):

def __init__(self, context):
logger.info('Creating horse')
super(self).init(self, context)

我想在前台运行应用程序时在控制台中打印记录器消息“创建马”。但是这匹马被创建了,我没有收到它的消息。我猜内容类型对象是由 __init__ 创建的,但也许我错了。

最佳答案

你迷上了 __init__对于您的内容类型的架构。架构用作填充内容的字段的基础,但它不是内容类型类本身。

如果你想进入内容类型创建,你注册 event subscribers反而:

from zope.app.container.interfaces import IObjectAddedEvent

@grok.subscribe(IHorse, IObjectAddedEvent)
def logHorseCreated(horse, event):
logger.info('Created a horse')

如果您真的必须在 __init__ 中自定义内容项初始化方法,您必须创建自己的 custom content class反而。
from plone.dexterity.content import Item

class Horse(Item):
def __init__(self, id=None):
super(Horse, self).__init__(id)

关于plone - 创建内容类型后如何执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com