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

标签 python pyramid deform colander

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

最佳答案

要为所有漏勺字段放置一个验证器,我们可以简单地这样做

验证器方法:

def user_DoesExist(node,appstruct):
if DBSession.query(User).filter_by(username=appstruct['username']).count() > 0:
    raise colander.Invalid(node, 'Username already exist.!!')

架构:

class UserSchema(CSRFSchema):
username = colander.SchemaNode(colander.String(), description="Extension of the user")
name = colander.SchemaNode(colander.String(), description='Full name')
extension = colander.SchemaNode(colander.String(),description='Extension')
pin = colander.SchemaNode(colander.String(), description='PIN')

查看:

@view_config(route_name='add_user', permission='admin', renderer='add_user.mako')
def add_user(self):
    #Here you can provide validator method as a parameter. And you can validate any field you want.
    schema = UserSchema(validator = user_DoesExist).bind(request=self.request)
    form = deform.Form(schema, action=self.request.route_url('add_user'), buttons=('Add User','Cancel'))

如果我的场景有误,请纠正我。

谢谢

关于python - 可以访问所有节点的变形/漏勺验证器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026844/

相关文章:

python - 将绘图嵌入 GUI 中

python - 如何在 Django 模板中引用本地媒体文件

python - 安装 BeautifulSoup

python - Pyramid 项目内的外部 iFrame。更新后没有刷新

python - 在 Pyramid 中的领域模型遍历中使用单例类

python - 使用变形的相关/级联输入

python - 将 Django 1.8 与 Shibboleth 一起使用

python - 在 sqlalchemy 中对相同的声明性基础使用不同的模式

jquery - 使用 ajax 和 jQuery Form 进行变形