2013-03-29 60 views
3

我可以附加CKAN資源嗎?我注意到,ckan.model.Resourceextras屬性,所以我試圖用這樣的事情來使資源:將附加資料附加到CKAN資源?

resource = { 
    "package_id": "my-package-id", 
    "url": "http://google.com", 
    "name": "Google", 
    "extras": [ 
     { "key": "myextra", "value": "my extra content" } 
    ] 
} 

from ckan.plugins import toolkit 
toolkit.get_action("resource_create")(faked_context, resource) 

我跟着一起作爲邏輯功能終於結束了運行package_update,但ValidationError: {u' junk': u'The input field __junk was not expected.'}

失敗謝謝!

回答

5

您不必爲資源額外資源使用關鍵字「extras」,只需在資源字典中添加任何您想要的頂級關鍵字的任意鍵值對,並將它們轉換爲資源額外資源。舉例來說,我認爲這應該工作:

resource = { 
    "package_id": "my-package-id", 
    "url": "http://google.com", 
    "name": "Google", 
    "myextra": "my extra content" 
} 

至少,我剛試過,在API和它的工作,所以我認爲它會通過插件工具的工作就像你正在做的一樣好。我想這個功能需要記錄,可能在resource_create() docstring

(注:這確實工作包,添加自定義字段包看到example_idatasetform extension附帶CKAN。)

+0

請注意,您可以* *添加額外而不'IDatasetForm'包,但你必須通過''extras'明確地列出它們:[{「key」:「my-key」,「value」:「my-value」}]'。 –

相關問題