GQLQuery получает пустой набор результатов - PullRequest
1 голос
/ 07 ноября 2011

Я запускаю GQLQuery для поиска, если пользователь ввел правильные учетные данные:

class User(db.Model):
    UserName = db.TextProperty();
    Password = db.TextProperty();
    Ticket = db.TextProperty();

class Authentication(webapp.RequestHandler):
    def post(self):
        str_user = self.request.get('user')
        str_password = self.request.get('password')
        user = db.GqlQuery("SELECT * FROM User WHERE UserName = :1 AND Password = :2",str_user, str_password)
        self.response.out.write(str_user)
        self.response.out.write(str_password)
        self.response.out.write(str([u.UserName for u in user]))

        if user.count() > 0:
            ticket = str(uuid.uuid4())
            user.Ticket = ticket
            self.response.out.write(ticket)
        else:
            self.response.out.write('Not authorized!')

Запрос всегда возвращает пустой набор результатов (с предложением "WHERE"), хотя я уверен,что я передал правильные параметры.

Я попытался объединить мою собственную строку запроса, но результат остался прежним.Если я уберу предложение "WHERE", я получу всех пользователей базы данных, поэтому я предполагаю, что соединение с базой данных в порядке.

1 Ответ

3 голосов
/ 07 ноября 2011

Это, вероятно, потому что вы используете TextProperty на своих полях.TextProperty для многострочных текстов и не индексируется.Вы не можете искать неиндексированные значения в запросе.Вы должны использовать StringProperty для однострочных текстовых значений.

...