2015-12-23 2 views
0

Я разрабатываю подключаемый модуль для CKAN, и мне нужно вызвать функцию при обновлении или создании ресурса.trigger after_update() в IPackageController по вызову API

При изменении ресурса он влияет на родительский набор данных, изменяя дату в last_modified. Я хочу изменить дату каждый раз, когда ресурс добавляется/изменяется.

Когда я обновляю ресурс, я также должен обновить набор данных, и я ожидаю вызов after_update() в IPackageController. Это поведение, когда я использую интерфейс администратора, после того, как я редактировал ресурс, запускается 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? thanks

ответ

0

Вызов/api/3/action/resource_update не вызывает функцию after_update IPackageController, так как это обновляемый ресурс, а не пакет.

Если вы вызываете/api/3/action/package_update, его нужно вызвать?

Или вы можете использовать обработчик after_update IResourceController для обработки при обновлении ресурса.

+0

извините, я не очень хорошо объяснил проблему, прочитайте снова вопрос, пожалуйста. благодаря – Infrid