2010-04-26 94 views
7

如何预填充Formish表单?根据文档的明显方法似乎不正确。利用所提供的例子之一:如何预先填充Python 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对象,可以将嵌套的字典转换为点字典,但这种不对称看起来不正确。有一个更好的方法吗?

回答

1

不,不需要用虚线快译通,你可以很容易地使用验证后的风格字典预填充表单:

form.defaults={'myStruct': {'a': None, 'b': 'default_value'}} 

也许有旧版本formish的,尝试更新库。