GAE datastore в python не найдет сущностей, о существовании которых я знаю

Если я выполняю следующий код:

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)I pass u в шаблон jinja, который повторяет

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

Я вижу ожидаемое имя пользователя.

Затем я создал шаблон jinja, который принимает:

users.all()

Затем я повторяю:

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

Имя пользователя, которое я ищу, Joe, генерирует «Yay».

Почему jinja может нарисовать правильный матч, но Gql не может? Независимо от того, что я делаю любой поиск, который фильтрует ли «где» или по .filter возвращает None

Поиск по ключу является прекрасным и работать, как ожидалось.

1 ответ