2014-09-26 81 views
3

我已經經歷的文檔這裏一些額外的字段添加到數據集和資源CKAN:增加額外字段CKAN資源

http://docs.ckan.org/en/latest/extensions/adding-custom-fields.html

到目前爲止,一切工作只要「清理代碼「部分,編輯數據集時出現額外字段。我跳過了標籤並開始向資源中添加自定義字段,但沒有任何向自定義字段添加自定義字段的功能。這裏是plugin.py的相關部分:

class ExampleIDatasetFormPlugin(p.SingletonPlugin, tk.DefaultDatasetForm): 
    p.implements(p.IDatasetForm) 
    p.implements(p.IConfigurer) 

    def _modify_package_schema(self, schema): 
    schema.update({ 
     'my_custom_field': [tk.get_validator('ignore_missing'), 
          tk.get_converter('convert_to_extras')] 
    }) 
    schema['resources'].update({ 
     'my_custom_field' : [ tk.get_validator('ignore_missing')] 
    }) 
    return schema 

    def create_package_schema(self): 
    schema = super(ExampleIDatasetFormPlugin, self).create_package_schema() 
    schema = self._modify_package_schema(schema) 
    return schema 

    def update_package_schema(self): 
    schema = super(ExampleIDatasetFormPlugin, self).update_package_schema() 
    schema = self._modify_package_schema(schema) 
    return schema 

    def show_package_schema(self): 
    schema = super(ExampleIDatasetFormPlugin, self).show_package_schema() 
    schema.update({ 
     'my_custom_field': [tk.get_converter('convert_from_extras'), 
          tk.get_validator('ignore_missing')] 
    }) 
    schema['resources'].update({ 
     'my_custom_field' : [ tk.get_validator('ignore_missing') ] 
    }) 
    return schema 

任何人都可以提出什麼可能會出錯嗎?

回答

4

本教程中的plugin.py是正確的,但您還需要在文件夾「templates/snippets /」中添加一個名爲「resource_form.html」的.html文件。添加以下代碼resource_form.html文件:

{% ckan_extends %} 

{% block basic_fields_url %} 
{{ super() }} 

    {{ form.input('custom_resource_text', label=_('Custom Text'), id='field-custom_resource_text', placeholder=_('custom resource text'), value=data.custom_resource_text, error=errors.custom_resource_text, classes=['control-medium']) }} 
{% endblock %} 

教程忘記談論這個,但如果你是指在Github上的源代碼(https://github.com/ckan/ckan/tree/master/ckanext/example_idatasetform/templates/package/snippets),你可以找到我說在這裏!

+0

這得到了正確的字段輸入形式出現 - 謝謝。現在我需要弄清楚如何說服CKAN實際保存新的字段,並在資源摘要中顯示它... – knirirr 2015-06-05 09:39:39

+0

這個迴應可能有點過時了,但我應該指出,我也是需要在具有相同內容的片段中創建resource_form_edit.html,以便爲現有資源添加自定義字段。 – scuerda 2016-05-13 15:55:49

1

您使用的自定義資源字段的名稱與您的自定義額外(在包級別)相同,儘管這些名稱可能完全不同。你不期待這個價值被分享嗎?如果沒有,您如何在資源中填充my_custom_field,您是使用API​​還是自定義表單?如果它不以某種方式填充,它將被安靜地忽略。