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