如何使文件上传与Deform和Colander兼容?

asc*_*bol 9 python pyramid deform colander

我想渲染一个包含一系列文件的表单,代表产品的不同图像.提供文件应该是兼容性的,因此即使没有文件,表单也应该验证.我怎样才能做到这一点 ?

这是我使用的漏勺模式:

    import colander
    import deform
    from deform import Form
    from deform import ValidationFailure
    from deform.interfaces import FileUploadTempStore 


    tmpstore = FileUploadTempStore()

    class Image(colander.Schema):
        image = colander.SchemaNode(
            deform.FileData(),
            widget=deform.widget.FileUploadWidget(tmpstore)
            ) 

    class Images(colander.SequenceSchema):
        images = Image()

    class ProductSchema(colander.Schema):
        completename = colander.SchemaNode(colander.String(), title="Complete Name")

        description = colander.SchemaNode(colander.String(), 
                                 widget = deform.widget.TextAreaWidget())

        images = Images()


    schema = ProductSchema()
    form = Form(schema, buttons=("submit", ))
Run Code Online (Sandbox Code Playgroud)

我试图添加一个'缺失'的参数,如:

image = colander.SchemaNode(
        deform.FileData(),
        missing = ???
        widget=deform.widget.FileUploadWidget(tmpstore)
        ) 
Run Code Online (Sandbox Code Playgroud)

我觉得我什么时候有功能

missing={'filename': None, 'uid':None}
Run Code Online (Sandbox Code Playgroud)

但我真的不确定这是正确的做法......

谢谢 !

Chr*_*ugh 5

您可以尝试“ missing = colander.null”。