API在IPackageController中的\u update()后触发

2024-06-16 13:58:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为CKAN开发一个插件,需要在更新或创建资源时触发一个函数。你知道吗

修改资源时,它会通过更改上次修改的时间来影响父数据集。每次添加/修改资源时,我都要更改日期。你知道吗

当我更新一个资源时,我想也要更新数据集,我希望在IPackageController中有一个after\u update()调用。这是在编辑资源后使用管理界面时的行为IPackageController.after\更新()被触发。你知道吗

调用API是另一回事,调用

^{pr1}根本不会触发该事件$
import ckan.plugins as plugins

class MyControllerPlugin(plugins.SingletonPlugin):

    plugins.implements(plugins.IPackageController, inherit=True)

    def after_create(self, context, resource):
        print "============== AFTER CREATE"

    def after_update(self, context, resource):
        print "============== AFTER UPDATE"

如何通过API触发此事件? 谢谢


Tags: 数据selfapidefcontext事件pluginsupdate
1条回答
网友
1楼 · 发布于 2024-06-16 13:58:19

调用/api/3/action/resource\u update不会触发IPackageController的after\u update函数,因为正在更新的是资源,而不是包。你知道吗

如果您调用/api/3/action/package\u update,应该调用它吗?你知道吗

或者可以使用IResourceController的after\u update来处理更新资源的时间。你知道吗

相关问题 更多 >