我想渲染一个包含一系列文件的表单,代表产品的不同图像。提供文件应该是兼容性的,因此即使没有文件,表单也应该验证。我怎样才能做到这一点 ?
这是我使用的漏勺模式:
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}
但我真的不确定这是正确的做法......
谢谢!
答案 0 :(得分:5)
您可以尝试“missing = colander.null”。