收获时进行ckan 2.8电子邮件验证

时间:2019-07-16 17:27:44

标签: ckan

我正在尝试将一些数据集收集到2.8 ckan中,并且收集器给出了电子邮件验证错误。这些数据集来自不同的来源,可能没有正确的电子邮件格式/可能包含多个电子邮件/ URL,而不是有效的电子邮件。我使用的较早的ckan 2.6能够收集这些数据集。 这是我收到的错误消息:

  

错误[ckanext.harvest.harvesters.base] {'maintainer_email':['Email   fanny.hernandez@ecu911.gob.ec; maria.serrano@ecu911.gob.ec不是   有效格式']}追溯(最近一次通话):文件   “ /usr/lib/ckan/default/src/ckanext-harvest/ckanext/harvest/harvesters/base.py”,   _create_or_update_package中的第369行       else'package_create_rest')(上下文,package_dict)文件“ /usr/lib/ckan/default/src/ckan/ckan/logic/init.py”,在第464行   包裹       结果= _action(context,data_dict,** kw)文件“ /usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py”,行   177,在package_create中       引发ValidationError(errors)ValidationError:{'maintainer_email':['电子邮件fanny.hernandez@ecu911.gob.ec;   maria.serrano@ecu911.gob.ec格式无效']}

当我深入探究ckan源代码时,ckan收割机正在使用schema.py中的默认模式

schema = default_create_package_schema()

这将为模式提供email_validation:

  

“ maintainer_email”:[ignore_missing,unicode_safe,email_validator]

但是对于2.6,没有email_validator:

  

“ maintainer_email”:[ignore_missing,unicode]

我最初的想法是跳过此验证,是从schema.py的default_create_package_schema()中删除email_validator。

因此,虽然验证电子邮件是有意义的,但我认为验证是可配置的会更好,因为在某些情况下(例如上述错误中的多个维护者),我们可能需要跳过严格的电子邮件验证。

有没有人遇到这个问题和/或找到了收集电子邮件无效数据的方法?

1 个答案:

答案 0 :(得分:0)

您可以轻松地覆盖电子邮件的验证。请从官方文档中查看customizing-dataset-and-resource-metadata-field