python中的GAE数据存储将找不到我知道存在的实体
如果我执行以下代码:python中的GAE数据存储将找不到我知道存在的实体,python,google-app-engine,datastore,gql,Python,Google App Engine,Datastore,Gql,如果我执行以下代码: 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 c
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)
数据存储永远无法在筛选器查询中找到任何内容。我创建了两个特殊页面,以确保我要查找的数据确实存在,其中一个页面从我将u传递到迭代的jinja模板中的用户处迭代u=db.GqlQuerySELECT*
{%for i in u%}i.usernamei.passwordi.email{%endfor%}
我看到了预期的用户名
然后,我创建了一个jinja模板,其中包含:
users.all()
然后我迭代:
{% for i in users %}{% if i.username == "Joe"%}Yay{% else %}nope{% endif %}{% endfor %}
我要找的用户名Joe会生成一个Yay
为什么jinja能画出正确的匹配,而Gql不能?无论我做什么,任何按何处或按何处进行筛选的搜索。筛选器都不会返回任何结果
按键搜索可以正常工作。您尝试过这个吗
user_is = users.all().filter('username =', name).get()
另外,username是db.StringProperty,所以它应该是indexedt这也是我的猜测。