2016-08-06 6 views
0

Ich kann POST-Daten mit booleschem Feldwert "false" nur nicht validieren, dies funktioniert gut mit "true". Ich habe bereits versucht, '0', 'False' und 'false' zu erzwingen, aber die is_valid() Methode gibt false zurück mit dem Fehler "Dieses Feld ist erforderlich".Boolesches Feld kann nicht validiert werden, wenn Wert = false (fehlendes Feld)

Meine Post-Daten dict ist:

<QueryDict: {u'vote': [u'false'], u'csrfmiddlewaretoken': [u'l3RlmeHDnv7Y5aQiNJoadLUZDsiOFUI'], u'id': [u'40']}> 

Wenn ich 'true' Wert für dieses Feld schreiben, die QueryDict genau das gleiche, nur 'falsch' ändert.

Ich habe versucht, in str anstelle von Unicode dict zu konvertieren, aber es funktioniert nicht.

Danke!

Antwort

1

Wenn ich Ihre Frage richtig verstehe, müssten Sie die Eingabe von einer Zeichenfolge zu Bool Wert analysieren. Die folgenden Werte: bool('false') und bool('true') geben immer True aufgrund ihrer impliziten truthiness and falseness zurück.

def to_bool(s): 
    return s.lower() == 'true' 

Beispielausgabe:

d = {u'vote': [u'false']} 
print to_bool(d['vote'][0]) 
>>> False 
+0

Es ist möglich. Aber was ist die korrekte Formantwort für ein boolesches Feld? In meinem JS-Code gebe ich nur ein Testergebnis zurück. – Loy

0

Gelöst: Mit NullBooleanField statt BooleanField ...

Verwandte Themen