【发布时间】:2012-09-14 20:56:26
【问题描述】:
我想呈现一个包含一系列文件的表单,代表产品的不同图像。提供文件应该是临时性的,因此即使没有文件,表单也应该验证。我怎样才能做到这一点 ?
这是我使用的滤锅模式:
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}
但我真的不确定这是不是正确的做法......
谢谢!
【问题讨论】:
-
最好在 Pylons 列表中询问
-
@Sentinel - 为什么更好?这对于 SO 来说是一个非常好的问题,就像那些在 Django 和其他框架上的问题一样......你试图做的重点是什么? (诚实的问题,我只是想理解逻辑)
-
@mac:如果这是一个好问题,你为什么不投票呢? ;-)
-
@ascobol - +1 因为你要求它,但由于我对塔架一无所知,所以我很难判断你是否在发布问题之前做好了研究(也许有数万亿个其他相同的问题在 SO 上的措辞不同?)。
-
@Sentinel:邮件列表很烂。它们通常比 SO 之类的网站慢得多,您通常必须先注册(然后接收有关您不关心的垃圾邮件),...
标签: python pyramid deform colander