Frage

Ich habe eine neue Eigenschaft für mein db-Modell in dem Google App Engine-Datenspeicher.

Alt:

class Logo(db.Model):
  name = db.StringProperty()
  image = db.BlobProperty()

Neu:

class Logo(db.Model):
  name = db.StringProperty()
  image = db.BlobProperty()
  is_approved = db.BooleanProperty(default=False)

Wie für die Logo Datensätze abgefragt werden, was nicht den ‚is_approved‘ eingestellten Wert haben? Ich habe versucht,

logos.filter("is_approved = ", None)

, aber es hat nicht funktioniert. Im Data Viewer werden die neuen Feldwerte angezeigt, wie.

War es hilfreich?

Lösung

Nach der App Engine-Dokumentation auf Anfragen und Indizes , gibt es eine Unterscheidung zwischen Gesellschaften, die haben nicht Wert für eine Eigenschaft, und diejenigen, die eine null Wert für sie haben; und „Personen ohne Filtered Property nie von einer Abfrage zurückgegeben.“ So ist es nicht möglich, eine Abfrage für diese alten Aufzeichnungen zu schreiben.

Ein nützlicher Artikel ist Ihres Modells aktualisiert Schema , die dass die nur sagt derzeit unterstützten Art und Weise Elemente zu finden eine Eigenschaft fehlt, ist, sie alle zu untersuchen. Der Artikel hat Beispielcode zeigt, wie eine große Menge von Entitäten, um durch und aktualisieren sie.

Andere Tipps

Vielleicht hat sich das geändert, aber ich bin in der Lage Datensätze zu filtern basierend auf null Felder aus.

Wenn ich die GQL Abfrage SELECT * FROM Contact WHERE demo=NULL versuchen, es gibt nur Datensätze, für die das Demo-Feld fehlt.

Nach dem doc http://code.google.com/ appengine / docs / python / Datenspeicher / gqlreference.html :

  

Die rechte Seite eines Vergleichs kann eine der folgenden sein (wie   geeignet für den Datentyp der Eigenschaft): [...] eine Boolesche wörtlichen, wie TRUE oder   FALSCH; NULL wörtliche, die den Nullwert repräsentiert (None in   Python).

Ich bin nicht sicher, dass „null“ ist die gleiche wie „fehlt“ aber: in meinem Fall, diese Felder bereits existierte in meinem Modell waren aber nicht besiedeltes über die Schöpfung. Vielleicht wir Federico Sie lassen können wissen, ob die NULL-Abfrage in Ihrem speziellen Fall funktioniert?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top