Ich verwende wtforms
, um Daten aus meinen Postanforderungen zu behandeln. Eine bestimmte Post-Anforderungen sendet eine Vielzahl von Daten einschließlich eines booleschen Werts.WTForms BooleanField behandelt JSON false value als true
sieht Meine Form wie folgt aus:
class EditFileForm(Form):
title = StringField('title')
shared = BooleanField('shared')
fileID = IntegerField('fileID')
userID = IntegerField('userID')
das sehe ich, wenn ich die Anforderung der Daten sieht wie folgt erhalten:
data = MultiDict(mapping=request.json)
print(data)
>>MultiDict([(u'shared', False), (u'title', u'File5'), (u'userID', 1), (u'fileID', 16)])
Sie die Boolesche Feld „false“ zu sehen ist, und das Drucken der Rohdaten zeigt das auch. Wenn ich jedoch das tatsächliche Formularfeld drucke, werde ich wahr.
Ich habe gelesen, dass WTForms möglicherweise nicht mit falschen booleschen Werten umgehen können. Was ist der richtige Weg, dies zu tun? Verwenden Sie stattdessen eine IntegerField
?
Ich habe ein anderes Formular mit einem booleanfield, das falsche boolesche Werte aus meiner Postgres-Datenbank behandelt, ganz gut.