9

製品のさまざまな画像を表す一連のファイルを含むフォームをレンダリングしたいと思います。ファイルの提供は簡単である必要があるため、ファイルがない場合でもフォームを検証する必要があります。これどうやってするの ?

これが私が使用するザルスキーマです:

    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", ))

私は次のような「欠落している」引数を追加しようとしました:

image = colander.SchemaNode(
        deform.FileData(),
        missing = ???
        widget=deform.widget.FileUploadWidget(tmpstore)
        ) 

何か機能的になると思います

missing={'filename': None, 'uid':None}

しかし、それが正しい方法かどうかは本当にわかりません...

ありがとう !

4

1 に答える 1

5

「missing=colander.null」を試してみてください。

于 2011-07-04T08:14:52.837 に答える