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

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

Спасибо !


person ascobol    schedule 03.07.2011    source источник
comment
Лучше спросите в списке пилонов   -  person Andreas Jung    schedule 03.07.2011
comment
@Sentinel - Почему лучше? Это совершенно хороший вопрос для SO, как и для Django и других фреймворков... Какой смысл вы пытались сделать? (Честный вопрос, я просто пытаюсь понять логику)   -  person mac    schedule 03.07.2011
comment
@mac: если это хороший вопрос, почему бы тебе не проголосовать за него? ;-)   -  person ascobol    schedule 03.07.2011
comment
@ascobol - +1, потому что вы просили об этом, но, поскольку я ничего не знаю о пилонах, мне трудно сказать, хорошо ли вы провели свое исследование, прежде чем публиковать вопрос (возможно, есть триллионы других идентичных вопросов, сформулированных по-разному на ТАК?).   -  person mac    schedule 03.07.2011
comment
@Sentinel: списки рассылки отстой. Они часто намного медленнее, чем такие сайты, как SO, вам часто нужно сначала зарегистрироваться (а затем получать письма о дерьме, которое вас не волнует), ...   -  person ThiefMaster    schedule 04.07.2011


Ответы (1)


Вы можете попробовать «отсутствует = colander.null».

person Chris McDonough    schedule 04.07.2011