我正在试图弄清楚如何以编程方式将自由格式(无词汇表)标签添加到包中,而且我发现文档有点令人困惑。
来自http://docs.ckan.org/en/latest/ckan.logic.action.create.html的
package_create
说我可以添加标签并“查看标签字典格式的tag_create()”
tag_create
说“要创建新的免费标记,只需将标记添加到包中,例如使用package_update函数”
package_update
并未真正指定如何使用它,所以我尝试了:
package_update({"id": "my-package-id", "tags": [ "some", "free", "tags"]})
然而,抱怨它想要字典格式的标签,因为我将用于指定作为词汇表一部分的标签。如何指定免费标签?
此外,输入标签后访问标签的最佳方法是什么?我遇到了my_package.package_tags
包含标记但是my_package.get_tags()
返回空列表的情况?
非常感谢!!
答案 0 :(得分:0)
您可以通过执行package_create()或package_update()并指定尚不存在的标记来创建新标记,并且我认为(猜测)正确的格式 package_create()或package_update()的“tags”参数应为:
"tags": [{"name": "my_tag"}, {"name": "my-other-tag"}]
但你必须测试它。
然而,抱怨它想要字典格式的标签,就像我一样 用于指定作为词汇表一部分的标签。我如何能 指定一个免费标签?
如上所述,只是与词汇标签相同的字典格式,但有 只有“name”键而没有“vocabulary_id”。
此外,一旦拥有标签,访问标签的最佳方式是什么 进入?我遇到了my_package.package_tags的情况 包含一个标签,但my_package.get_tags()返回一个空列表?
使用动作函数:package_show(),tag_list(),tag_show()等。
如果您正在编写CKAN分机并且您不想拨打CKAN 通过发出HTTP请求的动作函数,然后你应该与之交互 CKAN使用“插件工具包”,其中包括一种调用动作的方法 这样的功能:
import ckan.plugins.toolkit as tk
my_package = tk.get_action('package_show')({'id': 'my_package'})
您会在工具包中找到许多其他有用的东西。