我刚刚开始在我的一个项目中使用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().bind
colander.Invalid
我对 Django 表单有很好的经验,所以我期待类似clean
方法的东西。像 form['customer_id'].error 这样的表单错误是我在模板级别所期望的。Pyramid's Deform 或 Colander 有可能吗?