CKAN - 自定义数据字段

时间:2015-05-13 09:24:40

标签: python ckan

我已经使用IDatasetForm here跟踪了Ckan示例自定义数据集和资源元数据字段,然后我添加了一些自定义数据字段。

然后,我想添加一些词典,并且我已经按照这些步骤进行了here,一切都在第一时间完成。

我花了一些时间,因为我意识到它似乎只创建了一次词汇表。

  1. 我添加了以下功能:

    def create_country_codes():
        user = tk.get_action('get_site_user')({'ignore_auth': True}, {})
        context = {'user': user['name']}
        try:
            data = {'id': 'country_codes'}
            tk.get_action('vocabulary_show')(context, data)
        except tk.ObjectNotFound:
            data = {'name': 'country_codes'}
            vocab = tk.get_action('vocabulary_create')(context, data)
            for tag in (u'uk', u'ie', u'de', u'fr', u'es'):
                data = {'name': tag, 'vocabulary_id': vocab['id']}
                tk.get_action('tag_create')(context, data)
    
  2. 第一次是一切都好,我按照我的预期得到了结果。然后我尝试在功能中添加更多国家/地区(标签),因为它似乎没有更新我已更改的内容而被卡住了:

    ...
     for tag in (u'uk', u'ie', u'de', u'fr', u'es', u'aa', u'bb', u'cc', u'dd'):
                data = {'name': tag, 'vocabulary_id': vocab['id']}
                tk.get_action('tag_create')(context, data)
    ...
    

    注意新标记:u&#39; aa&#39;,u&#39; bb&#39;,u&#39; cc&#39;,u&#39; dd&#39; < / p>

  3. 几次后,我尝试更改功能的名称,然后根据需要获取所有国家/地区的列表。我想第一次创建标签列表。

  4. 我不知道我是否做错了什么,但有人知道如何更新词汇表(不创建新功能)吗?

    感谢。

2 个答案:

答案 0 :(得分:1)

对不起是迟到的回复..我在寻找其他类似的东西时碰到了这个。无论如何,如果你的列表得到更新,那么你必须打电话 vocab = tk.get_action('vocabulary_update')(context, data) ,而不是 vocab = tk.get_action('vocabulary_create')(context, data) ,一旦检查了列表已更新

答案 1 :(得分:0)

好吧,我发现了以下有用的扩展,它提供了一种配置数据集的不同模式和自定义字段的方法:CKAN-scheming

希望在我的情况下对任何人都有帮助:))