2009-04-29 5 views
3

Bearbeiten: Tut mir leid, ich habe dies nicht geklärt, es ist eine Google App Engine bezogene Frage.Einfügen mehrerer Modellinstanzen mit einem einzigen db.put() in Google App Engine

Nach this kann ich db.put() eine Liste von Modellinstanzen geben und sie alle in den Datenspeicher eingeben. Dies konnte ich jedoch nicht erfolgreich durchführen. Ich bin immer noch ein wenig neu mit Python, so gehen Sie einfach auf mich

list_of_models = [] 
for i in range(0, len(items) - 1): 
    point = ModelName() 

    ... put the model info here ... 

    list_of_models.append(point) 

db.put(list_of_models) 

Könnte jemand zeigen, wo ich falsch gehe?

+0

Was Sie geschrieben haben, sieht gut aus. Sie müssen uns sagen, welchen Fehler Sie bekommen. –

Antwort

4

Bitte definieren Sie, was Sie mit "schief gehen" meinen - die kleinen Code-Stücke, die Sie zeigen, könnten perfekt Teil einer App sein, die ziemlich "richtig" ist. Betrachten wir zum Beispiel:

class Hello(db.Model): 
    name = db.StringProperty() 
    when = db.DateTimeProperty() 

class MainHandler(webapp.RequestHandler): 

    def get(self): 
    self.response.out.write('Hello world!') 
    one = Hello(name='Uno', when=datetime.datetime.now()) 
    two = Hello(name='Due', when=datetime.datetime.now()) 
    both = [one, two] 
    db.put(both) 

dies nicht setzen Sie die beiden Einheiten richtig jedes Mal, wenn Methode erhalten genannt wird, zum Beispiel wenn eine Beispielanwendung weiter mit:

def main(): 
    application = webapp.WSGIApplication([('/', MainHandler)], 
             debug=True) 
    wsgiref.handlers.CGIHandler().run(application) 


if __name__ == '__main__': 
    main() 

wie in einem typischen „Hallo Welt“ App Motor App Sie können die korrekte Hinzufügung beider Entitäten mit dem Datenspeicher-Viewer der SDK-Konsole überprüfen, oder natürlich durch Hinzufügen eines anderen Handlers, der die Entitäten zurückerhält und anzeigt, usw.

Also bitte klar!