如何在CKAN 2.2中定义自定义验证器

卡帕科

我需要在CKAN 2.2的扩展程序中为日期定义一个新的验证器。IValidators界面无法正常工作。你能帮我吗?

杰布劳

当前,有三种不同的函数原型可用于自定义验证器。这是使用带有两个参数的原型的自定义日期字符串验证器的示例(文档链接中的选项5)。此类型必须返回字段的最终值(相反,它可以在存储值之前更改该值):

import ckan.plugins as plugins
import ckan.plugins.toolkit as tk  
from ckan.plugins.toolkit import Invalid

def date_str_validator(value, context):
    valid_date = tk.get_validator('isodate')(value, context)
    if not valid_date or not isinstance(valid_date, datetime.datetime):
        raise Invalid("Invalid date")
    return value

class MyPlugin(plugins.SingletonPlugin, tk.DefaultDatasetForm):

    plugins.implements(plugins.IDatasetForm, inherit=False)

    def _modify_package_schema(self, schema):
        schema.update({
            # Custom extras
            'origination_date':[tk.get_validator('ignore_missing'),
                                date_str_validator,
                                tk.get_converter('convert_to_extras')]
        })
        return schema

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

        return schema

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

    def show_package_schema(self):
        schema = super(MyPlugin, self).show_package_schema()

        schema.update({
            # Custom extras
            'origination_date':[tk.get_converter('convert_from_extras'),
                                tk.get_validator('ignore_missing'),
                                date_str_validator]
        })

        return schema

请注意,验证器和转换器是按顺序调用的,因此此处显示的顺序在_modify_package_schema中都很重要show_package_schema

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Angular2 / 4/5中实现自定义异步验证器

来自分类Dev

如何在Angular2中制作自定义验证器

来自分类Dev

如何在Dart中使用Angular2实现自定义验证器?

来自分类Dev

如何在Yii 2验证错误消息中添加自定义链接?

来自分类Dev

如何在Zend Framework 2中注册自定义水化器?

来自分类Dev

如何在Zend Framework 2中注册自定义水化器?

来自分类Dev

Struts 2如何从自定义验证程序中获取i18n消息

来自分类Dev

如何在ASP.NET Web API 2中自定义对我自己的表集的身份验证?

来自分类Dev

如何编写依赖于Angular2中当前组件的属性值的自定义表单验证器(由模型驱动)

来自分类Dev

在ZF2中,如何注册自定义的Feed阅读器扩展?

来自分类Dev

Yii 2 如何在文件上传时添加自定义验证检查

来自分类Dev

如何在angular 2中包含打字稿自定义类型定义?

来自分类Dev

如何在自定义组件上定义方法?在AngularJS 2中

来自分类Dev

如何在ZF2中为单个控制器动作设置自定义标头?

来自分类Dev

如何在log4j2中为自定义记录器编写单元测试

来自分类Dev

如何在ASP.NET Core RC2中获取控制器的自定义属性

来自分类Dev

如何在struts2中为自定义拦截器添加excludeMethods参数列表

来自分类Dev

如何在FormRequest中添加自定义验证器?

来自分类Dev

在Azure B2C自定义策略中,如何针对依赖于验证技术配置文件的验证显示2条以上的不同验证消息?

来自分类Dev

Yii2-表单验证规则:如何使用自定义验证功能或替代方法?

来自分类Dev

Select2:如何在 Select2 中获得自定义排序

来自分类Dev

如何在Spark 2.X数据集中创建自定义编码器?

来自分类Dev

如何在Spring OAuth2资源服务器中使用自定义UserDetailService?

来自分类Dev

如何在EC2服务器上访问.emacs文件进行自定义?

来自分类Dev

带有参数的Angular 2自定义验证器

来自分类Dev

Angular 2-自定义验证器语法

来自分类Dev

symfony2自定义验证器FatalErrorException

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

Angular 2异步自定义验证器

Related 相关文章

  1. 1

    如何在Angular2 / 4/5中实现自定义异步验证器

  2. 2

    如何在Angular2中制作自定义验证器

  3. 3

    如何在Dart中使用Angular2实现自定义验证器?

  4. 4

    如何在Yii 2验证错误消息中添加自定义链接?

  5. 5

    如何在Zend Framework 2中注册自定义水化器?

  6. 6

    如何在Zend Framework 2中注册自定义水化器?

  7. 7

    Struts 2如何从自定义验证程序中获取i18n消息

  8. 8

    如何在ASP.NET Web API 2中自定义对我自己的表集的身份验证?

  9. 9

    如何编写依赖于Angular2中当前组件的属性值的自定义表单验证器(由模型驱动)

  10. 10

    在ZF2中,如何注册自定义的Feed阅读器扩展?

  11. 11

    Yii 2 如何在文件上传时添加自定义验证检查

  12. 12

    如何在angular 2中包含打字稿自定义类型定义?

  13. 13

    如何在自定义组件上定义方法?在AngularJS 2中

  14. 14

    如何在ZF2中为单个控制器动作设置自定义标头?

  15. 15

    如何在log4j2中为自定义记录器编写单元测试

  16. 16

    如何在ASP.NET Core RC2中获取控制器的自定义属性

  17. 17

    如何在struts2中为自定义拦截器添加excludeMethods参数列表

  18. 18

    如何在FormRequest中添加自定义验证器?

  19. 19

    在Azure B2C自定义策略中,如何针对依赖于验证技术配置文件的验证显示2条以上的不同验证消息?

  20. 20

    Yii2-表单验证规则:如何使用自定义验证功能或替代方法?

  21. 21

    Select2:如何在 Select2 中获得自定义排序

  22. 22

    如何在Spark 2.X数据集中创建自定义编码器?

  23. 23

    如何在Spring OAuth2资源服务器中使用自定义UserDetailService?

  24. 24

    如何在EC2服务器上访问.emacs文件进行自定义?

  25. 25

    带有参数的Angular 2自定义验证器

  26. 26

    Angular 2-自定义验证器语法

  27. 27

    symfony2自定义验证器FatalErrorException

  28. 28

    Angular2自定义验证器未调用

  29. 29

    Angular 2异步自定义验证器

热门标签

归档