我正在为CKAN开发一个插件,我需要在更新或创建资源时触发一个函数。
修改资源时,它会通过更改last_modified中的日期来影响父数据集。我想在每次添加/修改资源时更改日期。
当我更新资源时,我想也要更新数据集,我期待在IPackageController中调用after_update()。在我编辑资源IPackageController.after_update()被触发后,这是我使用管理界面时的行为。
调用API是一个不同的故事,通过调用
/api/3/action/resource_update
完全不触发该事件
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触发此事件? 感谢
答案 0 :(得分:0)
调用/ api / 3 / action / resource_update不会触发IPackageController的after_update函数,因为它是正在更新的资源,而不是包。
如果你调用/ api / 3 / action / package_update它应该被调用吗?
或者您可以使用IResourceController的after_update来处理资源更新的时间。