2010-04-26 4 views
7

Comment pré-remplir un formulaire Formish? La méthode évidente selon la documentation ne semble pas juste. En utilisant l'un des exemples fournis:Comment pré-remplir un formulaire 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') 

Si nous adoptons ce un objet de requête valide:

form.validate(request) 

La sortie est une structure comme celle-ci:

{'myStruct': {'a': 'value', 'b': 0 }} 

Cependant, pré-peuplement le formulaire utilisant defaults l'exige:

form.defaults = {'myStruct.a': 'value', 'myStruct.b': 0} 

Le package dottedish a un objet DottedDict qui peut convertir un dict imbriqué en dict dictée, mais cette asymétrie ne semble pas correcte. Y a-t-il une meilleure manière de faire cela?

Répondre

1

Non, ne nécessitent pas d'utiliser dict en pointillés, vous pouvez facilement utiliser le style post-validate dict pour pré-remplir le formulaire:

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

ont peut-être ancienne version de formish, essayez de mettre à jour les libs .

Questions connexes