CKAN - 自定义数据字段
CKAN - customizing data fields
我遵循了 Ckan 示例使用 IDatasetForm here 自定义数据集和资源元数据字段,我开始添加一些自定义数据字段。
然后,我想添加一些词典,并且我已按照这些步骤进行操作 here,一切都在第一时间运行。
我花了很少时间才意识到词汇表似乎只创建了一次。
我添加了以下功能:
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)
第一次一切正常,结果如我所说。然后我尝试在函数中添加更多国家(标签),但我被卡住了,因为它似乎没有更新我所做的更改:
...
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'aa'、u'bb'、u'cc'、u'dd'
几次后,我尝试更改函数的名称,然后我得到了我想要的所有国家/地区的列表。我猜de list of tags是第一次创建的。
我不知道是不是我做错了什么,但有人知道如何更新词汇列表(不创建新函数)吗?
谢谢。
好吧,我发现了以下有用的扩展,它提供了一种配置不同数据集模式和自定义字段的方法:CKAN-scheming
希望对遇到我这种情况的人有所帮助:)
您好,抱歉回复晚了。我在寻找其他类似内容时遇到了这个问题。无论如何,如果您的列表得到更新,那么您必须致电
vocab = tk.get_action('vocabulary_update')(context, data)
而不是 vocab = tk.get_action('vocabulary_create')(context, data)
一旦您检查列表已更新
我遵循了 Ckan 示例使用 IDatasetForm here 自定义数据集和资源元数据字段,我开始添加一些自定义数据字段。
然后,我想添加一些词典,并且我已按照这些步骤进行操作 here,一切都在第一时间运行。
我花了很少时间才意识到词汇表似乎只创建了一次。
我添加了以下功能:
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)
第一次一切正常,结果如我所说。然后我尝试在函数中添加更多国家(标签),但我被卡住了,因为它似乎没有更新我所做的更改:
... 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'aa'、u'bb'、u'cc'、u'dd'
几次后,我尝试更改函数的名称,然后我得到了我想要的所有国家/地区的列表。我猜de list of tags是第一次创建的。
我不知道是不是我做错了什么,但有人知道如何更新词汇列表(不创建新函数)吗?
谢谢。
好吧,我发现了以下有用的扩展,它提供了一种配置不同数据集模式和自定义字段的方法:CKAN-scheming
希望对遇到我这种情况的人有所帮助:)
您好,抱歉回复晚了。我在寻找其他类似内容时遇到了这个问题。无论如何,如果您的列表得到更新,那么您必须致电
vocab = tk.get_action('vocabulary_update')(context, data)
而不是 vocab = tk.get_action('vocabulary_create')(context, data)
一旦您检查列表已更新