如何预先填充Formish表格?根据文档显而易见的方法似乎并不正确。使用提供的示例之一:
import formish, schemaish
structure = schemaish.Structure()
structure.add( 'a', schemaish.String() )
structure.add( 'b', schemaish.Integer() )
schema = schemaish.Structure()
schema.add( 'myStruct', structure )
form = formish.Form(schema, 'form')
如果我们传递一个有效的请求对象:
form.validate(request)
输出结构如下:
{'myStruct': {'a': 'value', 'b': 0 }}
但是,使用defaults
预填充表单需要:
form.defaults = {'myStruct.a': 'value', 'myStruct.b': 0}
dottedish
包有一个DottedDict
对象,可以将嵌套的dict转换为虚线dict,但这种不对称似乎不正确。有更好的方法吗?
答案 0 :(得分:1)
不,不要求使用虚线dict,您可以轻松使用post-validate样式dict预填充表单:
form.defaults={'myStruct': {'a': None, 'b': 'default_value'}}
也许有旧版本的形式,尝试更新libs。