Django Boolean Queryset-Filter Funktioniert Nicht
Dieser hat schon frustrierend mich für den besseren Teil von einer Stunde.
Ich habe Folgendes Modell:
sold= models.BooleanField(default=False)
Und die folgenden anzeigen-code:
properties = Property.objects.filter(sold=False).order_by('-created_on');
Und die folgenden Werte in meinem sqlite3-Datenbank:
sqlite> select sold from clients_property;
1
1
1
1
1
Und die folgenden template-code funktioniert (wie in der, versteckt die verkauften Gegenstände):
{% if not property.sold %}
Jemand wissen, warum der Abfrage-filter nicht funktioniert, oder warum mache ich es falsch? Ich habe versucht:
sold="1"
sold=1
sold="false"
sold=False
sold="False"
Wie haben Sie das einfügen der Daten in Ihre Datenbank? Ein Wert von
verkauft=False ist der richtige filter, es sieht aus wie Sie nicht haben alle Eigenschaften, die mit verkauft=Falsch in Ihrer Datenbank.
Ich steckte es mit python die variable der verkauften=False
Auch habe ich manuell aktualisiert, über die SQLite3-shell, um sowohl die ganze Zahl 0 und 1, und änderte die filter-Anweisung in der Ansicht sowohl verkauft='1' and verkauft=1 und nichts davon verändert die Ergebnisse.
Seufz. OK. Dies wird unten gehen wird als einer der am meisten idiotischen Stackoverflow-Fragen überhaupt, aber mit Textmate ich war die Bearbeitung einer anderen Ansicht, als die, die ich Anzeige über die webapp. Alles funktioniert einwandfrei und ich bin wirklich Leid für jedermanns Zeit zu vergeuden.
1
Häufig ergibt True
. So sieht es bei mir wie die Daten in Ihre Datenbank beschädigt ist.verkauft=False ist der richtige filter, es sieht aus wie Sie nicht haben alle Eigenschaften, die mit verkauft=Falsch in Ihrer Datenbank.
Ich steckte es mit python die variable der verkauften=False
Auch habe ich manuell aktualisiert, über die SQLite3-shell, um sowohl die ganze Zahl 0 und 1, und änderte die filter-Anweisung in der Ansicht sowohl verkauft='1' and verkauft=1 und nichts davon verändert die Ergebnisse.
Seufz. OK. Dies wird unten gehen wird als einer der am meisten idiotischen Stackoverflow-Fragen überhaupt, aber mit Textmate ich war die Bearbeitung einer anderen Ansicht, als die, die ich Anzeige über die webapp. Alles funktioniert einwandfrei und ich bin wirklich Leid für jedermanns Zeit zu vergeuden.
InformationsquelleAutor John Peebles | 2011-08-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus, was du gepostet hast, funktioniert alles wie beworben. Wenn Sie versuchen, dieses Zeug von der shell aus, sollten Sie sich die folgenden Ergebnisse. Natürlich mache ich einige davon, so zu Lesen, bevor man einfach kopieren und einfügen.
Jack ist rechts, 1 sollte zu True ausgewertet, die in den meisten SQL-Implementierungen.
InformationsquelleAutor
Dies ist mir passiert als gut.
Stellte sich heraus, in SQLite können Sie Boolean mit dem Wert 0 und Boolean mit dem Wert False
Also Django funktioniert nicht mit diejenigen, die auf False gesetzt
Sah ich diese Diskrepanz in sqliteman
Einfaches update das problem behoben.
Ich denke, das passiert bei schema-upgrades und migration, in meiner dev-Umgebung also bin nicht allzu besorgt über es.
Das ist ein Alter bug im Süden: south.aeracode.org/ticket/578
InformationsquelleAutor
Ich hatte das gleiche problem. Meine Lösung war, ändern Sie den Typ der Spalte von ein 'bisschen' ein 'tinyint'.
Das Problem in meinem Fall verursacht wurde, durch eine manuell hinzugefügte Spalte in einer Tabelle.
InformationsquelleAutor