1

フリーフォーム (語彙のない) タグをプログラムでパッケージに追加する方法を理解しようとしていますが、ドキュメントが少しわかりにくいと感じています。

http://docs.ckan.org/en/latest/ckan.logic.action.create.html からpackage_create、タグを追加でき、「タグ辞書の形式については tag_create() を参照してください」と書かれています

tag_create「新しい無料タグを作成するには、package_update 関数などを使用してタグをパッケージに追加するだけです」

http://docs.ckan.org/en/latest/ckan.logic.action.update.html からpackage_update実際に使用方法を指定していないので、試しました:

package_update({"id": "my-package-id", "tags": [ "some", "free", "tags"]})

ただし、語彙の一部であるタグを指定するために使用するように、辞書形式のタグが必要であると不平を言っています。無料タグを指定するにはどうすればよいですか?

また、入力したタグにアクセスする最良の方法は何ですか? my_package.package_tagsタグが含まれている状況に遭遇しましたがmy_package.get_tags()、空のリストが返されましたか?

本当にありがとう!!

4

1 に答える 1

1

package_create() または package_update() を実行し、まだ存在しないタグを指定するだけで新しいタグを作成できます。package_create() または package_update( ) は次のようになります。

"tags": [{"name": "my_tag"}, {"name": "my-other-tag"}]

しかし、それをテストする必要があります。

ただし、語彙の一部であるタグを指定するために使用するように、辞書形式のタグが必要であると不平を言っています。無料タグを指定するにはどうすればよいですか?

上記のように、vocab タグとまったく同じ辞書形式ですが、「name」キーのみで「vocabulary_id」はありません。

また、入力したタグにアクセスする最良の方法は何ですか? my_package.package_tags にタグが含まれている状況に遭遇しましたが、my_package.get_tags() は空のリストを返しましたか?

アクション関数を使用します: package_show()、tag_list()、tag_show() など。

CKAN 拡張機能を作成していて、HTTP リクエストを作成して CKAN のアクション関数を呼び出したくない場合は、次のようなアクション関数を呼び出す方法を含む「プラグイン ツールキット」を使用して CKAN とやり取りする必要があります。

import ckan.plugins.toolkit as tk
my_package = tk.get_action('package_show')({'id': 'my_package'})

ツールキットには他にもたくさんの便利なものがあります。

于 2013-03-27T20:15:20.300 に答える