I use following construction to lookup records from datastore: point_old=models.Checkpoint.all().filter("checkpoint_id =", bus.checkpoint_id).get()
It works fine in most scenarios, but sometime I'm getting error like this: 'NoneType' object has no attribute 'checkpoint_id' Traceback (most recent call last): File "/base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py", line 501, in __call__ handler.get(*groups) File "/base/data/home/apps/xxx/1.332943763447248076/tasks/ busupdate.py", line 22, in get self.update(bus) File "/base/data/home/apps/xxx/1.332943763447248076/tasks/ busupdate.py", line 45, in update self.check_points(bus) File "/base/data/home/apps/xxx/1.332943763447248076/tasks/ busupdate.py", line 86, in check_points logging.debug("found old checkpoint: %s" % (point_old.checkpoint_id)) AttributeError: 'NoneType' object has no attribute 'checkpoint_id' Basically, get() returns None, but record I looked up is definitely in datastore. I figured out and replaced this look up call with equivalent GQL call: point_old = db.GqlQuery("SELECT * FROM Checkpoint WHERE checkpoint_id = %s" % (bus.checkpoint_id)).get() #point_old=models.Checkpoint.all().filter("checkpoint_id =", bus.checkpoint_id).get() What is wrong? Those constructs should behave the same way, but they don't. Commented one is not returning a record, when GQL is returning single record, just fine. Thanks, Dmitry --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---