CKAN的文档非常清楚如何在数据库操作之前/之后访问模型:
http://docs.ckan.org/en/latest/extensions/plugin-interfaces.html#ckan.plugins.interfaces.IMapper
基于此,我创建了一个插件,可以执行以下操作:
import ckan.plugins as plugins
class MyPlugin(plugins.SingletonPlugin):
plugins.implements(plugins.IMapper)
def before_insert(self, mapper, connection, instance):
print("INSERTING: %r", instance)
log("INSERTING: %r", instance)
raise ValueError("FRC!") # Just in case it's a logging/printing problem
虽然我确定已经安装了插件,但是对于其提供的其他功能,我执行的before_insert或任何其他调用都不会记录任何内容或引发异常。因此,据推测,它没有被调用,文档是错误的/不完整的,或者我完全误解了它。
我在CKAN清单上询问了这个问题但没有结果 - 这里有人可以提出问题所在吗?