Как сделать загрузку файлов факультативной с помощью Deform и Colander? - PullRequest
9 голосов
/ 03 июля 2011

Я хотел бы представить форму, содержащую последовательность файлов, представляющих различные изображения продукта. Предоставление файлов должно быть факультативным, поэтому форма должна проверяться даже при отсутствии файлов. Как я могу это сделать ?

Вот схема дуршлага, которую я использую:

    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 Ответ

5 голосов
/ 04 июля 2011

Вы можете попробовать "missing = colander.null".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...