我有一个问题,这可能是因为我不了解 GQL 的工作原理(这是我使用它的第一天)。我正在使用 google.appengine.ext.db 数据存储在 Google AppEngine(现在本地)上工作。
我只是创建一个具有特定 ID 的用户,然后尝试通过过滤以仅包含具有此 ID 的记录来检索它。当我尝试这个时,它什么都不返回,但是当我得到所有,迭代并一一比较 ID 时,它会找到记录。我没有看到这里肯定有一些愚蠢的错误。这是代码:
def datastore_key():
return db.Key.from_path('MyUsers', 'all')
class MyUser(db.Model):
my_id = db.TextProperty()
[...]
user = MyUser(parent=datastore_key())
user.my_id = "7wjew1"
user.put()
users = MyUser.all()
users.ancestor(datastore_key())
users.filter("my_id = ", "7wjew1") # WTF - why isn't this working???
print users[0] # is None, users list is empty
# now, let's get all users
users = MyUser.all()
users.ancestor(datastore_key())
# and iterate through the list to check for ids
for user in users:
if user.linkedin_id == user_id:
print "ids are the same"
# surprise, it prints the "ids are the same" - wtf?