Sto utilizzando wtforms
per gestire i dati dalle mie richieste di post. Una certa richiesta di posta invia una varietà di dati incluso un valore booleano.WTForms BooleanField considera il valore falso JSON come true
La mia forma è simile al seguente:
class EditFileForm(Form):
title = StringField('title')
shared = BooleanField('shared')
fileID = IntegerField('fileID')
userID = IntegerField('userID')
posso vedere che quando ricevo la richiesta dei dati è simile al seguente:
data = MultiDict(mapping=request.json)
print(data)
>>MultiDict([(u'shared', False), (u'title', u'File5'), (u'userID', 1), (u'fileID', 16)])
si può vedere il campo booleano è "false", e la stampa dei dati grezzi mostra anche quello. Tuttavia, quando stampo il campo del modulo reale, ottengo la verità.
print(form.shared.raw_data)
[False]
print(form.shared.data)
True
ho letto che WTForms potrebbero non sapere come gestire falsi valori booleani. Qual è il modo corretto di farlo? Utilizzando invece un IntegerField
?
Ho un altro modulo con un booleanfield che sta gestendo valori falso booleani dal mio database postgres bene.