问题标签 [colander]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2332 浏览

python - 可以访问所有节点的变形/滤锅验证器?

如何在 Deform/Colander 中定义一个自定义验证器,该验证器可以访问所有节点值。我需要访问两个字段中的值以确定特定值是否有效?

0 投票
1 回答
491 浏览

python - 滤锅和檐口不能正常工作

我尝试添加架构验证,因为它在官方檐口文档中描述,并通过像 service_name.post(schema=SomeSchemaClass) 这样的装饰器来做到这一点,但它不起作用

我得到错误

我尝试了不同类型的位置参数,如查询字符串和标题,但我得到了同样的错误。

0 投票
1 回答
337 浏览

python - 使用 Deform 在 HTML 控件中报告表单后处理错误消息

Deform允许在表单的不同字段上添加验证。但是,它会检查表单本身是否有效,但这并不一定意味着表单处理将是有效的。

例如,如果表单用于创建具有电子邮件地址的新用户。表单是有效的,但是表单处理(包括在数据库中插入这个新用户)会引发一个数据库完整性错误,说明已经有一个用户使用这个电子邮件地址。

我知道我可以添加一个特殊的验证器来检查电子邮件是否尚未使用,但仍然可能存在另一个并发事务,在检查和第一个事务的提交之间提交相同的电子邮件,这不是 100% 安全的结尾。

那么,我怎样才能很好地向用户报告表单后处理错误呢?

我可以轻松地报告表单旁边的错误消息(闪存消息或其他),但我想知道是否有一种方法可以直接在小部件中报告错误,就像处理正常的验证错误一样。

0 投票
1 回答
430 浏览

python - 重命名滤锅中的反序列化字段

我在基于 Pyramid/Cornice 的项目中使用滤锅将 JSON 字符串转换为 Python 对象,反之亦然。

有什么方法可以序列化/反序列化为不同的名称/键?

这是滤锅架构:

这是输入 JSON

它正在转换为:

这是我的问题,我可以将相同的输入 JSON 转换为以下内容吗?

谢谢你的帮助。

0 投票
1 回答
1419 浏览

python - 用滤锅捕捉空列表

colander用来验证(和反序列化 json 数据)对某些 Web 服务的输入。

我想向滤锅模式添加一条规则以捕获一个空列表,但我不知道该怎么做。

现在我有以下示例,演示了对f()具有两组不同数据的函数的调用。由于列表colander.Invalid为空,我希望后者触发异常events

建议?

0 投票
3 回答
2971 浏览

python - 滤锅:我如何允许 None 值?

假设我有一个简单的架构:

使用上面的架构,在尝试反序列{'thing': None}化时出现错误:

看起来滤锅处理具有None值的字段与缺少字段的方式相同。我怎样才能解决这个问题并强制执行thing总是提供的,但允许它存在None

0 投票
2 回答
2206 浏览

forms - 哪一种是表单验证的正确方法?Colander 的 Schema 验证还是 Deform 的表单验证?

我刚刚开始在我的一个项目中使用Pyramid,我有一个案例,我需要验证表单字段输入,方法是获取该表单字段值并进行 Web 服务调用以断言该值的正确性。例如,有一个字段称为您银行的 CUSTOMER-ID。我需要将其(单独)作为输入,并通过进行 Web 服务调用(例如http://someotherdomain/validate_customer_id/?customer_id=<input_value>)在服务器级别进行验证让我们说。

我正在使用滤锅进行表单架构管理,并使用Deform进行所有表单验证逻辑。我很困惑我需要在哪里放置 CUSTOMER-ID 案例的验证逻辑。是在(它有一个查询网络服务的延迟验证器)还是在 form.validate(request.POST.items()) ?如果我采用延迟验证器的路径,则会因不正确的 CUSTOMER-ID引发错误。没关系。但是该错误不在表单级别,而是在架构级别。那么我该如何以理智的方式告诉用户呢?MySchema().bind(customer_id=<input_value>)MySchema().bindcolander.Invalid

我对 Django 表单有很好的经验,所以我期待类似clean方法的东西。像 form['customer_id'].error 这样的表单错误是我在模板级别所期望的。Pyramid's Deform 或 Colander 有可能吗?

0 投票
1 回答
1657 浏览

python - 将漏勺与 Pyramid 应用程序一起使用

我有用金字塔编写的 RESTFul API。视图函数处理 request.POST 和 request.matchdict 中的数据并返回 json 响应。

例如:视图类中的方法。

如您所见,我正在视图方法中进行验证,这是我想避免的。我的目的是将验证与实际功能分开。我该如何处理?

我看到滤锅http://cornice.readthedocs.org/en/latest/validation.html#using-colander在我的情况下看起来非常好。但看起来它与我根本没有使用的檐口集成在一起。而且,我现在无法将整个应用程序转换为檐口。是否可以以与我的应用程序的上述链接中相同的方式使用滤锅?

这是我第一次编写 RESTFul API,也刚开始学习金字塔和滤锅。需要你的帮助。提前致谢。

0 投票
1 回答
625 浏览

python - 变形字段间验证不突出显示字段

我遵循了这个例子,但我对其进行了一些修改以适合我的项目

这就是我所拥有的:


验证工作得很好。它只是不想突出显示元素。

当我更换:

它确实突出显示,但它突出显示表单上的第一个元素,即first_name,这也是错误的。

我觉得我错过了一些小东西。

更新

所以我玩了一点,当我这样做时:

我在正确的字段上方收到一个警报消息框(不是 js 警报):

我得到的图像

而不是这个,我需要在上面的例子中突出显示该字段。

0 投票
1 回答
899 浏览

pyramid - 通过自定义 css_class 来变形 Button

我有一个基本的表格和架构..

现在这工作正常,但是我想将自定义 css 类传递给提交按钮,我希望这样做:

但这不起作用,我怎样才能将这个类属性传递给这样的按钮?

编辑:我也试过:

哪个呈现html