2012-04-04 6 views
2

Ich habe ein Modell „Kunde“ in Google App Engine mit Python genannt:In Google App-Engine, wie überprüft man, ob ein Modell leer ist oder nicht?

class Customer(db.Model): 
    name = db.StringProperty() 
    age = db.IntegerProperty() 

, bevor ich eine Instanz/Gegenstand des Kundenmodell zu erstellen, würde ich prüfen möchte, ob das Modell leer ist (kein Objekt nicht „None“, während die Linie „für Kunden in Kunden

customers = Customer.all() 
for customer in customers: 
    if customer: 
     logging.info("there is customer in Customer Model!") 
    else: 
     logging.info("The Customer Model is empty!") 
........ 

wenn keine Instanz/Objekt in Kunden Modell gibt es„Kunden“in Skript ist: erstellt worden ist), habe ich versucht, etwas in Python wie: "springt immer raus (bedeutet, es gibt nichts in" Kunden "?), irgendeine Idee? Kann ich das in der Django-Vorlage überprüfen? danke im voraus.

+0

Bitte definieren "leer" Modell –

Antwort

3

Sie könnten count()

customers = Customer.all() 
if customers.count(1): 
    # do something 
+0

dank aschmid00, es funktioniert. customers.count() gibt int 0 (False) zurück, wenn im Kundenmodell keine Instanz vorhanden ist, mit der überprüft werden kann, ob das Modell leer ist. – cnherald

+1

@cnherald verwenden zählen (1), um einige Zyklen zu speichern –

+0

Hallo Shay, wie man count (1) anstelle von count(), einen Unterschied verwenden? – cnherald

1

- EDIT: NUTZEN SIE DIESEN CODE-
Dieser Code wird langsamer als count (1), ich verlasse dieses ein schlechte Referenz.


customers = Customer.all().get() 
if customer: 
    logging.info("there is customer in Customer Model!") 
else: 
    logging.info("The Customer Model is empty!") 
+0

nett, es funktioniert auch. Können Sie bitte erklären, was Customer.all(). get() zurückgibt? Vielen Dank. – cnherald

+1

@cnherald es die Abfrage ausführen und das erste Ergebnis zurückgeben –

+0

danke Shay für Ihren Kommentar noch einmal. – cnherald

Verwandte Themen