2017-01-13 24 views
0

如果我執行下面的代碼實體:GAE數據存儲不會找到我知道存在

def post(self): 
    name = self.request.get('username') 
    password = self.request.get('password') 
    user_is = users.all().filter('name =', name).get() 
    params = dict() 
    if user_is: 
     hashword = user_is.password 
     if check_password(username, password, hashword): 
      key = db.Key.from_path('users', str(user_is.key().id())) 
      c = db.get(key) 
      secret_cookie = make_cookie_secret(c) 
      self.response.headers.add_header('Set-Cookie', "user_id=%s; Path=/" % secret_cookie) 
      self.redirect('/blog/userwelcomepage') 
     else: 
      params['passworderror'] = "Invalid username/password" 
      self.render("pagelogin.html", **params) 
    else: 
     params['usernameerror'] = "No such user" 
     self.render("pagelogin.html", **params) 

數據存儲在哪裏都找不到的篩選器查詢任何東西。我創建了2名特別的網頁,以確保我在尋找確實存在,一個迭代過的u=db.GqlQuery(SELECT * FROM users)我通過ü進入神社模板中的數據迭代

{% for i in u %}i.username<br>i.password<br>i.email{% endfor %}

我看到預期的用戶名。

然後我創建了一個神社模板發生在:

users.all() 

然後我重複:

{% for i in users %}{% if i.username == "Joe"%}Yay{% else %}nope{% endif %}{% endfor %} 

我找的,喬的用戶名,生成一個 「耶」。

爲什麼忍者可以繪製正確的匹配,但Gql不能?不管我做什麼搜索過濾是通過「where」還是通過.filter返回無。

按鍵搜索很好,按預期工作。

+0

此外,users.username是db.StringProperty(),所以它應該被索引 –

回答

0

你試過了嗎?

user_is = users.all().filter('username =', name).get() 
+0

這也是我的猜測。 –