Как сделать загрузку файлов факультативной с помощью 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", ))

Я попытался добавить "отсутствующий" аргумент, например:

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

Я думаю, что я получаю что-то функциональное, когда

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

Но я действительно не уверен, что это правильный способ сделать это...

Спасибо!

1 ответ

Решение

Вы можете попробовать "отсутствующий = colander.null".

Другие вопросы по тегам