2017-12-21 11 views
0

Ich baue ein Formular mit wtforms. Es gibt ein Radiofeld. Hier ist seine Daten:Python: Wtforms in pypugjs Funkfeld funktioniert nicht richtig

[(0, 'Active'),(1, 'Inactive'),] 

ich das Feld in pypugjs machen:

input(type='radio', name=key, value=option_key, checked=(record_data[key]==option_key))=option_value 

Nach dem submitssion, ich erhielt Not a valid choice Fehler. Aber nach Auswahl auf String-Wert (1 -> '1') zu ändern

[('0', 'Active'),('1', 'Inactive'),] 

Jetzt funktioniert es mit Wtforms Validierung, so bedeutet es, i-String als Radio Wert in RadioField verwenden?

Dann gibt es die neuen Schwierigkeiten: Ich nicht pypugjs Feld Zustand auch nach dem Gebrauch überprüft bekommen konnte gleichwertig

if record_data[key]==option_key 
    |matched 

Es funktioniert nicht, auch das Ergebnis von |#{record_data[key]}-#{option_key}- ist 1-1-

zu überprüfen

Also bedeutet es, dass pypugjs nicht zwei gleiche Werte enthält, denn einer ist Integer, einer ist String?!

Wie bekomme ich es Arbeit?

Antwort

0

Die Klasse RadioField verwendet einen Parameter coerce, der eine Funktion definiert, die auf den in der POST-Anforderung empfangenen Wert angewendet wird. Die Standardeinstellung coerce für RadioField ist unicode, daher ist der Feldwert eine Zeichenfolge, aber Sie können stattdessen int verwenden, sodass Sie eine ganze Zahl erhalten.

class Foo(wtforms.Form): 

    bar = wtforms.RadioField(coerce=int, choices=[(0, 'active'), (1, 'inactive')]) 
Verwandte Themen