2010-12-04 6 views
1

HTML:Mon formencode.variabledecode retourne une liste vide - Pylônes

<input type="text" name="blah-0" value="test" /> 
<input type="text" name="blah-1" value="another test" /> 

Controller:

class myvalidator(formencode.Schema): 

    allow_extra_fields = True 
    filter_extra_fields = True 

    test = formencode.ForEach(formencode.validators.String()) 

def form_posted(self): 
    form_result = myvalidator().to_python(request.params) 

    print form_result 

Ce que je suis en train de faire une liste retournée. Quelque chose comme:

> print form_result['blah'] 
['test', 'another test'] 

Qu'est-ce que je fais mal?

+1

Est form_posted une méthode de la classe myvalidator? Je ne suis pas familier avec les pylônes, mais il semble que le retrait ne soit pas correct ou que le code provienne d'une partie différente de votre programme. – Kabie

+0

Les retraits et les étendues sont tous corrects. Je l'ai juste coupé pour le poste. – dave

+0

On dirait que 'form_posted' est une méthode de quelque chose puisque son premier argument est' self'. Est-ce que 'test' est vraiment un attribut de classe' myvalidator'? – martineau

Répondre

1

Votre exemple est incomplète, mais vous devez décoder vos variables avant:

from formencode import variabledecode 

def form_posted(self): 
    decoded = variabledecode.variable_decode(request.params) 
    form_result = myvalidator().to_python(decoded) 
    print form_result 

Vous devriez aussi changer cette ligne si vous voulez blah:

test = formencode.ForEach(formencode.validators.String()) 

à:

blah = formencode.ForEach(formencode.validators.String()) 
Questions connexes